我知道这个问题有很多假设的重复,但由于没有答案为我工作,我宁愿问另一个问题。OpenCV 3.1.0不能用CMake编译
我的项目将无法通过CMake编译:
发现包配置文件:/usr/share/OpenCV/OpenCVConfig.cmake但其设置OpenCV_FOUND为false,以便包“的OpenCV”被认为是不找到。
我的CMakeLists.txt如下:就行find_package(OpenCV的REQUIRED)发生
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})
错误,从而没有下面的消息被显示无论如何。
但在编译时在控制台,用命令:
g++ -o prog -std=c++11 `pkg-config --libs --cflags opencv` prog.cpp
编制情况没有问题,程序可以发动完美的罚款。
“pkg配置--libs OpenCV的” 给我的命令(有点长,我同意):
-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配置--cflags OpenCV的” 简单地给我(CMAKE_INSTALL_PREFIX被设定为/ usr):
-I/USR /包含/ OpenCV的
如果有人有解决方案,我很乐意接受。