我正在制作一个包含openCV库的简单c++程序。Eclipse IDE可以识别openCV命令和库位置,但当我尝试构建项目时,编译器给出外部错误,引用opencv.hpp或core.hpp文件调用"opencv2/core.hpp“路径,这在opencv文件夹中不存在。我发现问题与调用core.hpp的方式有关,但库文件是只读的。从我在opencv.hpp文件中看到的,这个相对的"opencv2/module.hpp“引用不仅适用于内核,也适用于所有其他模块。事实上,在安装openCV的文件夹中根本没有opencv2文件夹。
我尝试用不同的making参数重新安装和重新制作openCV,使用不同的集成开发环境,并在eclipse中包含直接搜索文件夹。显然,问题出在文件本身,或者它可能以错误的方式安装在系统中。这个问题在我的ubuntu主机和ARMbian橙色pi上都存在。
在尝试包含任何包含#include "opencv2/[opencv module].hpp"的openCV库时,我收到此错误
因此,编译将终止,并显示以下错误消息:"/usr/local/include/opencv4/opencv2/opencv.hpp:52:28:致命错误: opencv2/core.hpp:没有这样的文件或目录“
编辑1: GCC c++编译器选项为-Iusr/local/include/opencv4/opencv2 -O3 -Wall -c -fmessage-length=0,链接器选项为-L/usr/local/lib。代码是一个简单的displayImage
#include <opencv4/opencv2/opencv.hpp>
#include <opencv4/opencv2/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace cv;
int main( int argc, char** argv )
{
Mat image;
image = imread( argv[1], 1 );
namedWindow( "Display Image", CV_WINDOW_AUTOSIZE );
imshow( "Display Image", image );
waitKey(0);
return 0;
}编辑2:$ pkg-config --libs opencv没有看到系统中安装了openCV,尽管我已经确保在path上运行了make install和ldconfig。这可能是安装错误的信号,但这只是一个次要说明,与主要问题不完全相关。我已经尝试重新安装和到不同的文件夹,但这仍然是一个主要的问题
发布于 2019-09-26 20:20:14
显然,@sgarizvi的评论就是答案。我只需要将包含路径设置为I/usr/local/include/opencv4,它就起作用了。在那之后,错误就被修复了。
我正在回答我自己的问题来结束这个案例,因为我不能对评论投上赞成票。
发布于 2019-09-25 16:36:52
在本例中,由于包含路径是/usr/local/include/opencv4/opencv2,因此请替换前三行
#include <opencv4/opencv2/opencv.hpp>
#include <opencv4/opencv2/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>通过
#include <opencv.hpp>
#include <imgproc.hpp>
#include <highgui.hpp>https://stackoverflow.com/questions/58080833
复制相似问题