我正在使用cmake编译opencv程序。 代码如下:
DisplayImage.cpp:
#include <stdio.h>
#include <opencv2/opencv.hpp>
using namespace cv;
int main(int argc, char** argv )
{
if ( argc != 2 )
{
printf("usage: DisplayImage.out <Image_Path>\n");
return -1;
}
Mat image;
image = imread( argv[1], 1 );
if ( !image.data )
{
printf("No image data \n");
return -1;
}
namedWindow("Display Image", WINDOW_AUTOSIZE );
imshow("Display Image", image);
waitKey(0);
return 0;
}
的CMakeLists.txt:
cmake_minimum_required(VERSION 2.8)
project( DisplayImage )
set(OpenCV_DIR /home/lmk/opencv-3.1.0/release)
include_directories( ${OpenCV_INCLUDE_DIRS} )
add_executable( DisplayImage DisplayImage.cpp )
target_link_libraries( DisplayImage ${OpenCV_LIBS} )
我将DisplayImage.cpp和CMakeLists.txt放在我个人主文件夹中名为test的文件夹中,即/home/lmk/test/
。
然后我使用命令行:
lmk @ lmk-virtual-machine:〜/ test $ mkdir build
lmk @ lmk-virtual-machine:〜/ test $ cd build
lmk @ lmk-virtual-machine:〜/ test / build $ cmake ..
哪位给我:
- C编译器标识是GNU 5.3.0
- CXX编译器标识为GNU 5.3.0
- 检查工作C编译器:/ usr / bin / cc
- 检查工作C编译器:/ usr / bin / cc - 工作
- 检测C编译器ABI信息
- 检测C编译器ABI信息 - 完成
- 检查CXX编译器是否正常工作:/ usr / bin / c ++
- 检查工作CXX编译器:/ usr / bin / c ++ - 工作
- 检测CXX编译器ABI信息
- 检测CXX编译器ABI信息 - 完成
- 配置完成
- 生成完成
- 构建文件已写入:/ home / lmk / test / build
但是当我使用时:
扫描目标DisplayImage的依赖关系
[100%]构建CXX对象CMakeFiles / DisplayImage.dir / DisplayImage.cpp.o
/home/lmk/test/DisplayImage.cpp:2:30:致命的错误:opencv2 / opencv.hpp:没有这样的文件或目录
编译终止。
make [2]: * [CMakeFiles / DisplayImage.dir / DisplayImage.cpp.o]错误1
make [1]:* [CMakeFiles / DisplayImage.dir / all]错误2
make:*** [all]错误1
你知道为什么吗? 我在VM中的ubuntu 14.04终端中使用opencv 3.1.0和cmake 2.8.12.2!