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}中,将链接库设置...
在CMake中,find_package命令用于查找并配置外部库,如OpenCV。以下是详细步骤,包括如何在CMakeLists.txt文件中使用find_package来查找和配置OpenCV。 1. 理解find_package在CMake中的作用find_package是CMake中用于查找和配置外部库或包的命令。它可以自动处理库的路径、头文件路径和编译选项等,简化了项目的配置过程。
find_package(OpenCV REQUIRED) # 最常见用法 查找名为 OpenCV 的包,找不到就报错(并终止 cmake 进程,不再继续往下执行)。 find_package(OpenCV REQUIRED COMPONENTS core videoio) 查找名为 OpenCV 的包,找不到就报错,且必须具有 OpenCV::core 和OpenCV::videoio 这两个组件,如果没有这两个组件也会报错...
因为我的opencv是安装ROS时自带的,所以.pc文件的名字和路径都比较奇怪,一开始用locate opencv.pc没有找到,然后便尝试自己写这个文件结果没想到3版本的opencv动态库的名字里面也有3,导致编译时链接的库都找不到,又是一番折腾,心累/(ㄒoㄒ)/~~,所以大家有安装了opencv时一定要先仔细找一下这个文件。 有了这个文...
上述代码表示OpenCV库是项目必需的,如果找不到该库,则配置过程将失败。 QUIET:可选参数,用于控制CMake在找不到指定库或框架时的输出。如果指定了该参数,CMake将不会输出错误信息,而是继续执行后续配置。 find_package(MyLib QUIET) 上述代码表示如果找不到MyLib库,CMake将不会输出错误信息。 NO_MODULE:可选参数...
OpenCVConfig.cmake opencv-config.cmake ... 问题原因 这个问题通常是由以下原因引起的: 没有正确安装OpenCV库:在执行find_package之前,请确保您已经正确地安装了OpenCV库,并且可以通过命令行访问到。 OpenCV库的路径没有正确配置:CMake无法找到OpenCV库是因为您没有正确配置OpenCV的安装路径。
find_package(OpenCV REQUIRED PATHS /usr/local/share/OpenCV NO_DEFAULT_PATH) c. pkg_check_module 编译安装第三方库时,会根据安装位置生成.pc文件,里面记录了头文件、库文件等的地址信息,将.pc文件路径加入pkg-config的环境变量PKG_CONFIG_PATH作为搜索路径。比如linux默认搜索路径/lib/pkgconfig。
大多数第三方库为了适配cmake都会提供XXXConfig.cmake文件,在opencv中是OpenCVConfig.cmake findpackage()是在环境变量中的XXXConfig.cmake文件,在引用opencv时是在找OpenCVConfig.cmake,对应与引用opnecv时的 find_package(OpenCV REQUIRED) 注意大小写与OpenCVConfig.cmake文件是完全相同的...
3. 使用cmake find_package 使用不同版本的opencv lib问题(opencv 安装在指定的目录,不是系统的目录) 1. cmake find_package的基本原理 当编译一个需要使用第三方库的软件时,我们需要知道: 比如说,我们需要一个第三方库 curl,那么我们的 CMakeLists.txt 需要指定头文件目录,和库文件,类似: ...
方案(一):忽略错误信息,仅使用find_package()命令包含头文件路径和库文件路径。此方法简单,但在复杂项目中可能需要手动添加所有所需库文件。方案(二):根据错误信息寻找缺失的库文件,并通过设置CMKAE_MODULE_PATH或OpenCV_DIR变量来解决。具体步骤如下:方案(1):在Module模式下,将OpenCVConfig.c...