编译简单的openCV项目

时间:2017-06-06 04:23:39

标签: c++ opencv compiler-errors g++

尝试编译一个非常简单的程序来测试我最近安装的OpenCV 3.2.0。我的程序opencvtest.cpp位于名为cpp的文件夹中,该文件夹还包含opencv-3.2.0安装目录。

这是我的计划。

//Include file for every supported OpenCV function
#include <opencv2/opencv.hpp>

int main( int argc, char** argv ) {

  cv::Mat img = cv::imread( argv[1], -1 );

  if( img.empty() ) return -1;

  cv::namedWindow( "Example 2-1", cv::WINDOW_AUTOSIZE );
  cv::imshow( "Example 2-1", img );
  cv::waitKey( 0 );
  cv::destroyWindow( "Example 2-1" );

  return 0;
}

下面我已经包含了对pkg-config的调用,以显示我正在使用的参数,以及我尝试编译文件的实际g ++命令。

asif.ahmed:~/cpp $ pkg-config opencv --cflags --libs
-I/usr/include/opencv -I/usr/include/opencv2 -lopencv_calib3d -lopencv_imgproc -lopencv_contrib -lopencv_legacy -lopencv_core -lopencv_ml -lopencv_features2d -lopencv_objdetect -lopencv_flann -lopencv_video -lopencv_highgui

asif.ahmed:~/cpp $ g++  opencvtest.cpp `pkg-config opencv --cflags --libs` -o main
opencvtest.cpp:2:10: fatal error: 'opencv2/opencv.hpp' file not found
#include <opencv2/opencv.hpp>
         ^
1 error generated.

其他人可以提出任何建议来编译吗?我不太了解编译C ++的命令行。

1 个答案:

答案 0 :(得分:1)

检查opencv.hpp的路径(真的是/usr/include/opencv2/opencv2/opencv.hpp吗?) - 如果您使用-I/usr/include/opencv2,可能需要#include "opencv.hpp"代替#include <opencv2/opencv.hpp>,或者更好地使用-I/usr/include/#include "opencv2/opencv.hpp"