尝试编译一个非常简单的程序来测试我最近安装的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 ++的命令行。
答案 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"