c++ - CMAKE 找到包但不链接库

标签 c++ opencv cmake mingw mingw32

我正在尝试使用 CMAKE 编译项目并使用 MinGW32-make.exe 进行制作。我的 CMakeLists.txt 看起来像这样:

#####################################
cmake_minimum_required (VERSION 3.0) 
project (TestProject)
find_package(OpenCV REQUIRED)
include_directories(${OPENCV_INCLUDE_DIR})
add_executable (main.exe main.cpp)
#####################################

运行“CMAKE -G “MinGW Makefiles”运行正常,但是当我尝试使用“MinGW32-make.exe”进行制作时,出现以下错误:

25:39: fatal error: opencv2/highgui/highgui.hpp: No such file or directory
 #include "opencv2/highgui/highgui.hpp"

当我查看 Makefile 时,我在任何地方都找不到文本“OpenCV”。应该在哪个文件中识别 OPENCV 目录?

最佳答案

你没有到达链接库,系统没有找到 opencv 头文件,这是因为你的包含目录没有正确设置。

指定 OpenCV 构建目录位于 OpencvConfig.cmake 文件的位置非常重要。

此外,您需要将您的库与 target_link_libraries 链接起来。

所以总而言之,您的 cmake 代码应该是这样的:

cmake_minimum_required (VERSION 3.0) 
project( TestProject )
find_package( OpenCV REQUIRED )
include_directories(${OpenCV_INCLUDE_DIRS})
add_executable( main main.cpp )
target_link_libraries( main ${OpenCV_LIBS} )

关于c++ - CMAKE 找到包但不链接库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37701400/

相关文章:

c++ - 使用 OpenCV 运行 detectMultiScale 时导致 "Camera dropped frame!"错误的原因是什么?

opencv - 为黑莓 10 导入 OpenCV

c++ - Cmake:为多配置 cmake 项目指定配置特定设置

c++ - FreeLibrary 阻止了我的应用程序

c++ - 为什么内联模板特化有帮助,我应该这样做吗?

opencv - 立体视差图生成

c++ - 执行 populate_sdk 时如何使用 yocto 在 native sysroot 中安装文件?

c++ - 与Boost Filesystem的静态链接不起作用

c++ - fedora 20 上的 boost/lexical_cast

c# - 在 visual studio 2013 中设置发布项目