CMAKE找到包但不链接库

时间:2016-06-08 11:35:45

标签: 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目录应该被识别?

1 个答案:

答案 0 :(得分:2)

您没有到达链接库,系统找不到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} )