C++ 使用cmake上的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

我正试图在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
如下所示:

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”标准。