【发布时间】:2020-01-24 14:37:36
【问题描述】:
我正在制作一个包含 openCV 库的简单 c++ 程序。 Eclipse IDE 可以识别 openCV 命令和库位置,但是当我尝试构建项目时,编译器会给出外部错误,指的是调用“opencv2/core.hpp”路径的 opencv.hpp 或 core.hpp 文件,该路径在 opencv 中不存在文件夹。我发现问题与调用 core.hpp 的方式有关,但库文件是只读的。 从我在 opencv.hpp 文件中看到的内容来看,这个相对的“opencv2/[module].hpp”引用不仅适用于核心,还适用于所有其他模块。实际上,在安装 openCV 的文件夹中根本没有 opencv2 文件夹。
我尝试使用不同的 IDE 并在 eclipse 中包含直接搜索文件夹,使用不同的制作参数重新安装和重新制作 openCV。显然,问题在于文件本身,或者它可能以错误的方式安装在系统中。这个问题在我的主要 ubuntu 机器和 ARMbian orange pi 上都存在。
我在尝试包含任何包含以下内容的 openCV 库时收到此错误
#include "opencv2/[opencv module].hpp"在里面
因此,编译终止并显示错误消息“/usr/local/include/opencv4/opencv2/opencv.hpp:52:28: fatal error: opencv2/core.hpp: No such file or directory”
编辑 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,尽管我已确保在路径上运行 make install 和 ldconfig。这可能是安装错误的信号,但这只是一个旁注,与主要问题并不完全相关。我尝试过重新安装并安装到不同的文件夹,但这也是一个主要问题
【问题讨论】:
-
请您添加您的代码,以及属性中的设置 --> C/C++ build 吗?
-
@Y.AL 当然,我已经更新了帖子。
-
@rerartedboi... 您必须提供包含
opencv2文件夹的文件夹的路径。像这样:-I/usr/local/include/opencv4 -
@sgarizvi 这产生了与 mat.hpp 和 mat.inl.hpp 相关的 620 个错误和 309 个警告。诡异的。幸运的是,找不到 core.hpp 的错误消失了,所以,我猜它正在某个地方移动
-
w.r.t 你的编辑2,你确认文件库在那里吗?