可以看到在执行find_package(OpenCV 3 REQUIRED)命令后,CMake找到了我们安装的位于/usr/local下的OpenCV库,并设置了CMake变量OpenCV_DIR为OpenCV库的配置文件所在路径,正是通过载入这个路径下的OpenCVConfig.cmake配置文件才能配置好OpenCV库,然后在OpenCVConfig.cmake配置文件中定义了变量OpenCV_INCLUDE_DIRS为OpenCV库头...
pkg_check_modules是 CMake 封装的一个pkg-config 模块,pkg_check_modules检测系统中的 pkg-config 是否存在指定的 .pc 文件。根据PKG_CONFIG_PATH路径找到库文件地址后,就定义了<prefix>_INCLUDE_DIRS和其他的这类变量,后续的用法就与find_package一致。find方法如下: find_package(PkgConfig) pkg_check_modules(...
重点看下其中 OpenCV_DIR、OpenCV_INCLUDE_DIRS 和 OpenCV_LIBS 打印的结果,这是我在 CMakeLists.txt 中用 message 命令输出这三个变量的值的结果。 可以看到在执行 find_package(OpenCV 3 REQUIRED) 命令后,CMake 找到了我们安装的位于 /usr/local 下的 OpenCV 库,并设置了 CMake 变量 OpenCV_DIR 为 OpenCV...
add_executable(my_bin src/my_bin.cpp)find_package(OpenCV REQUIRED)include_directories(${OpenCV_INCLUDE_DIRS})target_link_libraries(my_bin, ${OpenCV_LIBS}) 工作流程如下: find_package在一些目录中查找OpenCV的配置文件。 找到后,find_package会将头文件目录设置到${OpenCV_INCLUDE_DIRS}中,将链接库设置...
include_directories(${OpenCV_INCLUDE_DIRS}) target_link_libraries(my_bin, ${OpenCV_LIBS}) 工作流程如下: find_package在一些目录中查找OpenCV的配置文件。 找到后,find_package会将头文件目录设置到${OpenCV_INCLUDE_DIRS}中,将链接库设置到${OpenCV_LIBS}中。
OpenCV_INCLUDE_DIRS 是头文件路径 OpenCV_LIBS 是库文件地址 有了头文件和库文件,自然而然可以正常引用 OpenCV 了。 package 的通用套路 实际上,通过 find_package() 可以顺利查找任何符合 cmake package 标准的外部工程。 find_pacage()方法签名如下: ...
PackageName_INCLUDE_DIRS:使用包需要包含的头文件。 PackageName_LIBRARIES:使用包所需要的库文件,是全路径或者链接器能在库搜索目录下找到的库文件名称。 PackageName_DEFINITIONS:使用包所需要的编译选项。 PackageName_LIBRARY:库的路径,只有当包提供的是单个库的时候才能使用这形式。 PackageName_INCLUDE_DIR:使用包...
如果找到LAPACK库就把头文件(应该可以这么说吧)路径和库文件路径赋值给下面两个语句中的 ${LAPACK_INCLUDE_DIRS}、 ${LAPACK_LIBRARIES}。 include_directories( include ${catkin_INCLUDE_DIRS} ${OpenCV_INCLUDE_DIRS} ${TooN_INCLUDE_DIRS} ${spdlog_INCLUDE_DIRS} ...
就会有变量Qt5Widgets_FOUND,Qt5Widgets_INCLUDE_DIRS相应的变量生效。 然后就可以在CMakeLists.txt里面使用上述的变量了。类似如下: 1INCLUDE_DIRECTORIES(${QT_INCLUDES})2INCLUDE_DIRECTORIES(${Qt5Widgets_INCLUDE_DIRS})3INCLUDE_DIRECTORIES(${Qt5Svg_INCLUDE_DIRS})4INCLUDE_DIRECTORIES(${Qt5OpenGL_INCLUDE_DI...
include_directories(${Foo_INCLUDE_DIRS}) ``` 这会将 `Foo` 库的包含目录添加到项目中,使得你可以在源代码中使用 `#include <Foo/foo.h>` 包含头文件。 2. **链接库**: 通常情况下,当你找到一个库时,CMake会设置一个变量来引用该库的链接库。你可以使用这个变量来链接你的目标。例如,假设你找到了...