MinGW C++ 编译器在系统路径中找不到 OpenCV

Posted

技术标签:

【中文标题】MinGW C++ 编译器在系统路径中找不到 OpenCV【英文标题】:MinGW C++ compiler cant find OpenCV in the system path 【发布时间】:2021-03-08 09:02:45 【问题描述】:

因此,当我尝试使用 MinGW 从 .cpp 编译一个小型 c++ 文件时,我收到一条错误消息,指出“致命错误:opencv2\core\mat.hpp:没有这样的文件或目录”。它以一种或另一种形式发生在 Sublime Text 3、Atom 和带有“gcc myfile.cpp”的命令行上。我应该注意到我在 Windows 10 上。这是代码:

#include <iostream>
#include <opencv2\core\mat.hpp>
#include <opencv2\core.hpp>
#include <opencv2\highgui.hpp>
#include <opencv2\core\types.hpp>
#include <opencv2\imgproc.hpp>

int main()

    std::cout << "Hello World!\n";
    cv::Mat img = cv::imread("despair.jpg");
    cv::cvtColor(img, img, cv::COLOR_RGBA2GRAY, 1);
    cv::imshow("1", img);
    cv::waitKey(0);

    cv::Mat mask = cv::Mat(img.rows, img.cols, CV_8UC1, cv::Scalar(255));
    cv::Rect_ <char> roi = cv::Rect_ <cv::Point>(cv::Point(0, 0), cv::Point(10, 10));
    cv::rectangle(mask, roi, cv::Scalar(0), -1);
    cv::Scalar colors = cv::mean(img, mask);

我做过和尝试过的事情:

将 C:\OpenCV\opencv\build\include\ 添加到系统路径。 将 x64/vc15 文件夹中的 bin 和 lib 文件夹添加到系统路径中。 在一般情况下对系统路径进行混乱和试验,以尝试找到任何可行的方法。 (此时我已经尝试了很多组合,我已经忘记了其中的大部分) 将所有内容添加到我的用户特定路径。 将 .cpp 文件中的包含目录更改为我需要包含的每个文件的绝对路径(这适用于我需要的确切文件,但是当这些文件尝试包含其他文件时会失败他们 需要,例如当 Mat.hpp 尝试包含 Matx.hpp 时) 正在重新安装 MinGW64。 将 MinGW 安装到不同的文件夹并更新系统路径以反映新位置。 更改我正在使用的文本编辑器 从文本编辑器外部的命令行编译

现在我的系统路径中的东西:

C:\OpenCV\opencv\build\x64\vc15\lib C:\OpenCV\opencv\build\x64\vc15\bin C:\OpenCV\opencv\build\include\ C:\MinGW\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bin

我将这段代码从一个更大的项目中取出来测试它发生了什么,此时我正在努力找出问题所在。请发送帮助。

【问题讨论】:

使用-L-I 选项添加路径有帮助吗? 我不确定你的意思。这些命令是我在命令行中输入的吗?还是设置环境变量gui中的选项? 这些是 mingw 命令行选项。构建项目的 mingw 命令行是什么? 我刚刚使用了“gcc test_opencv.cpp”。我如何使用这些选项?更新:我试过“gcc -L C:\OpenCV\opencv\build\include -L C:\OpenCV\opencv\build\x64\vc15\bin -L C:\OpenCV\opencv\build\x64\vc15\lib test_opencv.cpp “看起来对吗?它给了我与 OP 中相同的错误。 math.hpp 的完整路径是什么? opencv库的完整路径是什么? 【参考方案1】:

添加 -I 选项以及 opencv 包含路径和 -L 以及 opencv 库路径,如下所示:

gcc -IC:\OpenCV\opencv\build\include -LC:\OpenCV\opencv\build\x64\vc15\lib test_opencv.cpp

【讨论】:

非常感谢,我认为这有效。出于某种原因,opencv 还引发了大量其他错误,但我认为这可能是一个单独的问题? 这个问题是关于 mingw 找不到 opencv 标头。所以是的,opencv 编译错误应该是一个单独的问题。

以上是关于MinGW C++ 编译器在系统路径中找不到 OpenCV的主要内容,如果未能解决你的问题,请参考以下文章

在路径中找不到 Eclipse g++:windows

mingw“找不到工作的编译器”

在 PATH 中找不到“g++”[已安装 mac/Eclipse/XCODE/CDT]

使用 Eclipse + CDT + MinGW32 开发 C++ Socket 程序找不到库文件和头文件

vs2017如何搭建mingw qt项目

C++ 如何将库添加到 minGW