CMakeLists记录
1. CMakeLists.txt直接使用类似${OpenCV_INCLUDE_DIRS}、${OpenCV_LIB_DIR}这样的表述的原因。
find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
link_directories(${OpenCV_LIB_DIR})
find_package(OpenCV REQUIRED)会在系统中找到OpenCVConfig.cmake,该文件定义了OpenCV_INCLUDE_DIRS和OpenCV_LIB_DIR、OpenCV_LIBS 等变量,因而可以使用include_directories和target_link_libraries来访问这两个变量。
2. 有关find_package(批量引入库文件和头文件)、include_directories(引入头文件目录)、link_directories(引入库文件目录到当前工程)、link_libraries (引入库文件到当前工程)、target_link_libraries(引入库文件到子工程)、target_include_directories(引入头文件目录到子工程)。见下个链接:
target_link_libraries默认的搜索路径通常为/usr/lib
和/usr/local/lib
,以及它们的子目录、和环境变量LD_LIBRARY_PATH
指定的路径。需要自定义库文件搜索路径时,可以使用target_link_directories
命令或在CMakeLists.txt文件中设置CMAKE_LIBRARY_PATH
变量来添加额外的路径。
CSDN博主「仲夏夜之梦~」的原创文章https://blog.csdn.net/challenglistic/article/details/129093434