【发布时间】:2016-06-08 11:35:45
【问题描述】:
我正在尝试使用 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_INCLUDE_DIRS变量,其中包含带有 OpenCV 标头的目录。您应该使用它而不是OPENCV_INCLUDE_DIR来调用include_directories()。您可以使用message()命令输出变量的内容。请注意,该目录路径不必包含 OpenCV 子字符串。 -
我听从了您的建议并使用了以下行:"message(STATUS"OPENCV DIRECTORY:" ${OpenCV_INCLUDE_DIRS}) 它返回了一个空值,与 _DIR 相同。当它发现包不应该它设置了这个变量?
-
我又看了看,大写是让我绊倒的地方。它现在成功链接了 OpenCV 目录,谢谢!现在我从 OpenCV 使用的每个函数都会给出一个“未定义的引用”错误。我想我必须为我正在使用的每个单独的动态库使用“target_link_libraries”?
标签: c++ opencv cmake mingw mingw32