C++ 使用cmake上的OpenCV生成失败
我正试图在ubuntu 16.04上使用OpenCV 2.4编译一个项目。我使用apt get安装了opencv:C++ 使用cmake上的OpenCV生成失败,c++,c,opencv,cmake,C++,C,Opencv,Cmake,我正试图在ubuntu 16.04上使用OpenCV 2.4编译一个项目。我使用apt get安装了opencv: sudo apt-get install libopencv-dev sudo apt-get install libopencv-nonfree-dev 但是,在编译项目时,我收到以下错误消息: undefined reference to `cv::imread(std::string const&, int)' 我的CMakeLists.txt如下所示: cmak
sudo apt-get install libopencv-dev
sudo apt-get install libopencv-nonfree-dev
但是,在编译项目时,我收到以下错误消息:
undefined reference to `cv::imread(std::string const&, int)'
我的CMakeLists.txt
如下所示:
cmake_minimum_required(VERSION 3.5)
project(Ex)
find_package(OpenCV REQUIRED )
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c99")
message(STATUS "CMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}}")
message(STATUS "OpenCV_LIBS=${OpenCV_LIBS}")
set(SOURCE_FILES main.cpp)
add_executable(Ex ${SOURCE_FILES})
target_link_libraries(Ex ${OpenCV_LIBS})
set_property(TARGET Ex PROPERTY C_STANDARD 99)
有人知道如何解决这个问题吗
编辑
第二条消息的输出是
OpenCV_LIBS=opencv_videostab;opencv_video;opencv_ts;opencv_superres;opencv_stitching;opencv_photo;opencv_ocl;opencv_objdetect;opencv_nonfree;opencv_ml;opencv_legacy;opencv_imgproc;opencv_highgui;opencv_gpu;opencv_flann;opencv_features2d;opencv_core;opencv_contrib;opencv_calib3d
消息
命令的输出是什么?顺便说一下,在代码的最后一行,你为可执行文件设置了C标准:它是无用的,因为可执行文件是C++。C标准标志是必需的,因为我在C中的项目中有其他源文件。应该实现给定函数的库opencv_imgproc
,在您的列表中。您是否使用标准编译器(gcc)构建项目我的项目中有其他源文件是C。
——但您仅对从单个.cpp
文件编译的目标应用“C”标准。