我CMakeLists.txt在C++中编写了一个使用OpenCV库的项目.当我尝试使用cmake创建项目时,我遇到了下一个配置问题:
CMake Error at CMakeLists.txt:15 (find_package):
Could not find module FindOpenCV.cmake or a configuration file for package
OpenCV.
Adjust CMAKE_MODULE_PATH to find FindOpenCV.cmake or set OpenCV_DIR to the
directory containing a CMake configuration file for OpenCV. The file will
have one of the following names:
OpenCVConfig.cmake
opencv-config.cmake
Run Code Online (Sandbox Code Playgroud)
事实是我有一个环境变量用于我在Visual Studio中使用的路径没有问题.如果我不包含OpenCV,那么我可以配置和生成没有问题,但我需要解决问题.我不明白为什么cmake找不到OpenCV路径或如何解决它.
我还使用了此链接中提到的建议: FindOpenCV.cmake
有人也有这个问题吗?
ala*_*nxz 34
您看到的错误是CMake无法找到FindOpenCV.cmake文件,因为cmake不包含一个开箱即用的文件.因此,您需要找到一个并将其放在cmake可以找到它的位置:
你可以在这里找到一个好的开始.如果你喜欢冒险,你也可以写自己的.
然后在项目中的某处添加它并调整CMAKE_MODULE_PATH以便cmake可以找到它.
例如,如果你有
CMakeLists.txt
cmake-modules/FindOpenCV.cmake
Run Code Online (Sandbox Code Playgroud)
然后你应该做一个
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake-modules)
Run Code Online (Sandbox Code Playgroud)
在执行find_package(OpenCV)之前的CMakeLists.txt文件中
les*_*usz 20
如果您使用的是Linux,则只需要使用opencv(包含OpenCVConfig.cmake文件)的路径填充OpenCV_DIR变量
export OpenCV_DIR=<path_of_opencv>
Run Code Online (Sandbox Code Playgroud)
pen*_*ner 14
我有同样的问题.我通过在我的FindOpenCV.cmake文件中添加以下行来修复它.在其余代码之前将它放在顶部的任何位置.
set (OpenCV_DIR /home/cmake/opencv/compiled) #change the path to match your complied directory of opencv
Run Code Online (Sandbox Code Playgroud)
基本上你在告诉FindOpenCV.cmake在哪里找到opencv文件,假设其他编译可以找到FindOpenCV.cmake
小智 10
#include #include
不是原创的cv.h
我遇到了同样的错误.在我的例子中,这个"OpenCVConfig.cmake"文件位于/ usr/local/share/OpenCV中.在CMakeLists.txt中添加该行
set(OpenCV_DIR /usr/local/share/OpenCV)
正如错误消息所示.