尝试编译一个非常简单的程序来测试我最近安装的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++不太了解。

最佳答案

检查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"

关于c++ - 编译简单的openCV项目,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44381375/

10-11 23:07
查看更多