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的主要内容,如果未能解决你的问题,请参考以下文章
在 PATH 中找不到“g++”[已安装 mac/Eclipse/XCODE/CDT]