由于其优先级最高,因此cmake会优先从该目录中寻找,这样我们就可以随心所欲的配置cmake使其找到我们希望它要找到的包。而且除上述指定路径外,cmake还会直接进入<package>_DIR下寻找。如我在3rd_parties目录下编译了一个OpenCV,那么执行cmake时可以使用 OpenCV_DIR=../../3rd-party/opencv-3.3.4/build/ cmake ....
因为我的opencv是安装ROS时自带的,所以.pc文件的名字和路径都比较奇怪,一开始用locate opencv.pc没有找到,然后便尝试自己写这个文件结果没想到3版本的opencv动态库的名字里面也有3,导致编译时链接的库都找不到,又是一番折腾,心累/(ㄒoㄒ)/~~,所以大家有安装了opencv时一定要先仔细找一下这个文件。 有了这个文...
而且除上述指定路径外,cmake还会直接进入<package>_DIR下寻找。如我在3rd_parties目录下编译了一个OpenCV,那么执行cmake时可以使用 OpenCV_DIR=../../3rd-party/opencv-3.3.4/build/ cmake .. 这样做以后,cmake会优先从该目录寻找OpenCV。 配置好编译好了以后,我感兴趣的是另一个问题: 我现在编译出了可执行...
而且除上述指定路径外,cmake还会直接进入<package>_DIR下寻找。如我在3rd_parties目录下编译了一个OpenCV,那么执行cmake时可以使用 OpenCV_DIR=../../3rd-party/opencv-3.3.4/build/ cmake .. 这样做以后,cmake会优先从该目录寻找OpenCV。
可以看到在执行find_package(OpenCV 3 REQUIRED)命令后,CMake找到了我们安装的位于/usr/local下的OpenCV库,并设置了CMake变量OpenCV_DIR为OpenCV库的配置文件所在路径,正是通过载入这个路径下的OpenCVConfig.cmake配置文件才能配置好OpenCV库,然后在OpenCVConfig.cmake配置文件中定义了变量OpenCV_INCLUDE_DIRS为OpenCV库头...
2. 通过指定Opencv安装位置 set(OpenCV_DIR /run/media/geoffrey/Timbersaw/Backup/other_package/opencv-4.0.0/build) 其中'/run/media/geoffrey/Timbersaw/Backup/other_package/opencv-4.0.0/build'是我的编译位置, 可以进行替换 把路径替换成OpenCV3的编译路径,那么find结果如下:...
opencv-config.cmake ... 问题原因 这个问题通常是由以下原因引起的: 没有正确安装OpenCV库:在执行find_package之前,请确保您已经正确地安装了OpenCV库,并且可以通过命令行访问到。 OpenCV库的路径没有正确配置:CMake无法找到OpenCV库是因为您没有正确配置OpenCV的安装路径。
在用cmake编译项目的时候,很多时候需要用find_package来导入一些库,比如opencv,cuda等。但是有时候,下载了预编译好的项目时,怎么手动指定路径呢? 解决方案 通过设定一个project_DIR变量来指定路径,该路径是projectConfig.cmake文件所在的路径,比如下载预编译好的llvm。
3. 使用cmake find_package 使用不同版本的opencv lib问题(opencv 安装在指定的目录,不是系统的目录) 1. cmake find_package的基本原理 当编译一个需要使用第三方库的软件时,我们需要知道: 比如说,我们需要一个第三方库 curl,那么我们的 CMakeLists.txt 需要指定头文件目录,和库文件,类似: ...
当执行cmake ..命令后,CMake读取CMakeLists.txt文件中的代码,执行find_package命令时,它会从指定路径中查找Findxxx.cmake和xxxConfig.cmake文件。如果在Module模式中找不到FindOpenCV.cmake文件,则进入Config模式。在问题分析阶段,回顾错误信息,可以发现CMakeLists.txt文件中未设置CMKAE_MODULE_PATH...