OpenCV 3.1.0不能用CMake编译 [英] OpenCV 3.1.0 won't compile with CMake

查看:2473
本文介绍了OpenCV 3.1.0不能用CMake编译的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我知道这个问题有很多可能的重复,但由于没有答案对我有用,我宁愿提出另一个问题。

I know there are many supposed duplicates for this matter, but since none of the answers worked for me I'd rather ask another question.

t用CMake编译:

My project won't compile with CMake:


找到包配置文件:/usr/share/OpenCV/OpenCVConfig.cmake,但它将OpenCV_FOUND设置为FALSE so package OpenCV被认为是未找到。

Found package configuration file: /usr/share/OpenCV/OpenCVConfig.cmake but it set OpenCV_FOUND to FALSE so package "OpenCV" is considered to be NOT FOUND.

我的CMakeLists.txt如下:

My CMakeLists.txt is as follows:

cmake_minimum_required( VERSION 2.8 )
project( Tests )
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11" )

if(WIN32)
#    set( CMAKE_PREFIX_PATH "${CMAKE_PREFIX_PATH} C:\\OpenCV" )
    set( OpenCV_DIR "C:\\OpenCV\\build" )
elseif(UNIX)
    set( OpenCV_DIR "/usr/share/OpenCV" )
    set( PKG_CONFIG_PATH "/usr/lib/pkgconfig" )
endif()

find_package( OpenCV REQUIRED )
if( OpenCV_FOUND )
    message( "Found OpenCV" )
    message( "Includes: " ${OpenCV_INCLUDE_DIRS} )
else()
    message( "OpenCV not found, woot" )
endif( OpenCV_FOUND )

add_executable( Test ShapeRecognition/prog.cpp )
target_link_libraries( Test ${OpenCV_LIBS} )

错误发生在行find_package(OpenCV REQUIRED)

The error happens on the line find_package(OpenCV REQUIRED), thus none of the messages below are displayed anyway.

但在控制台中编译时,使用以下命令:

BUT while compiling in console, with the command:

g++ -o prog -std=c++11 `pkg-config --libs --cflags opencv` prog.cpp 

编译没有问题,程序可以完全启动。

The compilation happens without a problem, and the program can be launched perfectly fine.

命令pkg-config - -libs opencv给了我(有点长,我同意):

The command "pkg-config --libs opencv" gives me (a bit long, I agree):


-lopencv_stitching -lopencv_superres -lopencv_videostab -lopencv_aruco -lopencv_bgsegm -lopencv_bioinspired - lopencv_ccalib -lopencv_dnn -lopencv_dpm -lopencv_fuzzy -lopencv_line_descriptor -lopencv_optflow -lopencv_plot -lopencv_reg -lopencv_saliency -lopencv_stereo -lopencv_structured_light -lopencv_rgbd -lopencv_surface_matching -lopencv_tracking -lopencv_datasets -lopencv_text -lopencv_face -lopencv_xfeatures2d -lopencv_shape -lopencv_video -lopencv_ximgproc -lopencv_calib3d -lopencv_features2d -lopencv_flann -lopencv_xobjdetect - lopencv_objdetect -lopencv_ml -lopencv_xphoto -lopencv_highgui -lopencv_videoio -lopencv_imgcodecs -lopencv_photo -lopencv_imgproc -lopencv_core

-lopencv_stitching -lopencv_superres -lopencv_videostab -lopencv_aruco -lopencv_bgsegm -lopencv_bioinspired -lopencv_ccalib -lopencv_dnn -lopencv_dpm -lopencv_fuzzy -lopencv_line_descriptor -lopencv_optflow -lopencv_plot -lopencv_reg -lopencv_saliency -lopencv_stereo -lopencv_structured_light -lopencv_rgbd -lopencv_surface_matching -lopencv_tracking -lopencv_datasets -lopencv_text -lopencv_face -lopencv_xfeatures2d -lopencv_shape -lopencv_video -lopencv_ximgproc -lopencv_calib3d -lopencv_features2d -lopencv_flann -lopencv_xobjdetect -lopencv_objdetect -lopencv_ml -lopencv_xphoto -lopencv_highgui -lopencv_videoio -lopencv_imgcodecs -lopencv_photo -lopencv_imgproc -lopencv_core

命令pkg-config --cflags opencv 只给我(CMAKE_INSTALL_PREFIX设置为/ usr):

The command "pkg-config --cflags opencv" simply gives me (CMAKE_INSTALL_PREFIX is set to /usr):


-I / usr / include / opencv

-I/usr/include/opencv

如果有人有解决方案,我会很乐意接受。

If anyone has a solution, I'd gladly take it.

推荐答案

好吧,所以我想出来了。太糟糕了,我一直坚持这么长时间。

Ok so I figured it out. Too bad I've been stuck on this for that long.

我使用CLion,所以解决方案可能会有所不同,但你所要做的就是删除缓存和重新加载项目(我个人去了工具> CMake>删除缓存和重新加载项目)。

I am using CLion, so solution may differ, but all you have to do is to delete the cache and reload the project (I personally went to Tools > CMake > Delete cache and Reload project).

如果命令行工作和CMake不,我想这是所有

If command line works and CMake doesn't, I guess this is all you have to do.

我希望它最终能够帮助有这种愚蠢错误的人。

I hope it will eventually come to help someone else who'd have such a stupid error.

这篇关于OpenCV 3.1.0不能用CMake编译的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆