晚安,我正在做一个项目,我们在Ubuntu 1004中使用Cmake和OpenCV 2.0,团队中的每个人(我们是一个微型鼠标竞赛团队)都可以很好地编译代码,但我做不到。这就是Cmake对我说的:
tiago@tiago-laptop:~/bioloid/build$ cmake ..
-- Checking GNUCXX version 3/4 to determine OpenCV /opt/net/ path
CMake Error at CMakeModules/FindOpenCV.cmake:348 (MESSAGE):
OpenCV required but some headers or libs not found. Please specify it's
location with OpenCV_ROOT_DIR env. variable.
Call Stack (most recent call first):
CMakeLists.txt:45 (FIND_PACKAGE)
-- Configuring incomplete, errors occurred!
如果我尝试导出这样的变量:
export OpenCV_ROOT_DIR=/usr/local/lib
它不断给出相同的错误,这是pkg config--cflags--libs-opencv:的输出
-I/usr/local/include/opencv -I/usr/local/include -L/usr/local/lib -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_ml -lopencv_video -lopencv_features2d -lopencv_calib3d -lopencv_objdetect -lopencv_contrib -lopencv_legacy -lopencv_flann
团队中没有人知道该怎么办,我已经删除并重新安装了opencv,这有可能是因为我的电脑中也安装了openpv 2.2吗?
当您使用自定义Find宏来查找opencv(CMakeModules/FindOpenCV.cmake)时,您实际上应该检查该宏需要查找哪些库。因为看起来这个宏实际上在您的控制之下,所以我只想在它的处理中添加调试消息,以找出它在哪一点失败。如果宏使用对MARK_AS_ADVANCED的调用,则可以打印出传递到此宏的所有变量。所有变量都需要有一个不为空、不为false或不为XXX-NOTFOUND的值。
除此之外,让find宏的代码对我们可用将有助于调试。