CMake语法-find_package-查找库-pkg_check_modules-外部库信息-find_path-查找路径-find_library-查找库
cmake_minimum_required(VERSION 3.5)
project(my_project LANGUAGES CXX)
# 使用find_package查找名为my_lib的库
find_package(my_lib)
# 如果找不到my_lib,尝试使用pkg_check_modules来查找
if(NOT my_lib_FOUND)
pkg_check_modules(PC_my_lib my_lib)
if(PC_my_lib_FOUND)
set(my_lib_INCLUDE_DIRS ${PC_my_lib_INCLUDE_DIRS})
set(my_lib_LIBRARIES ${PC_my_lib_LIBRARIES})
message(STATUS "Found my_lib via pkg-config")
endif()
endif()
# 如果上述方法都没有找到库,则报错
if(NOT my_lib_FOUND)
message(FATAL_ERROR "Could not find my_lib library")
endif()
# 使用find_path查找头文件my_lib.h的路径
find_path(my_lib_INCLUDE_DIR my_lib.h)
# 如果找到了头文件路径,将其存储在变量中
if(my_lib_INCLUDE_DIR)
message(STATUS "Found my_lib headers in: ${my_lib_INCLUDE_DIR}")
else()
message(FATAL_ERROR "Could not find my_lib headers")
endif()
# 将库和头文件路径添加到项目中
include_directories(${my_lib_INCLUDE_DIR})
target_link_libraries(my_project ${my_lib_LIBRARIES})
这个示例代码展示了如何在CMake中查找一个名为my_lib
的库。它首先尝试使用find_package
来查找库,如果找不到,它会使用pkg_check_modules
来查找。如果两者都失败,它会报告错误。然后,它使用find_path
来查找库的头文件路径。如果找到了,它会将库和头文件路径添加到项目中。如果任何查找步骤失败,它都会报告一个致命错误。
评论已关闭