使用 MingW 运行 OpenCV 项目时出现入口点错误
Posted
技术标签:
【中文标题】使用 MingW 运行 OpenCV 项目时出现入口点错误【英文标题】:Entry point errors when running OpenCV projects with MingW 【发布时间】:2021-04-01 10:29:30 【问题描述】:我已经在 Windows 10 上安装了 MingW C++ 编译器。我成功构建了 OpenCV 库。 然后我写了一个测试项目如下。
#include <iostream>
#include <opencv2/core.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/imgproc.hpp>
using namespace std;
using namespace cv;
int main()
Mat input = imread("lenna.jpg", IMREAD_GRAYSCALE);
//Mat input(100, 200, CV_8UC(1), Scalar(100));
if (input.empty())
cout << "Image is empty" << endl;
return -1;
unsigned short rows = input.rows;
unsigned short cols = input.cols;
for (unsigned short i = 0; i < cols / 4; i++)
for (unsigned short j = 0; j < rows / 4; j++)
input.at<uchar>(j, i) = 0;
const string wnd = "input";
namedWindow(wnd, WINDOW_NORMAL);
imshow(wnd, input);
waitKey();
destroyWindow(wnd);
return 0;
编译成功,但如果我运行它,按照给定的顺序(从上到下一个接一个)出现以下错误。
我的task.json
:
"version": "2.0.0",
"tasks": [
"type": "cppbuild",
"label": "C/C++: g++.exe build active file",
"command": "\"$env:WINLAB_CPP\\g++.exe\"",
"args": [
"$file",
"-o",
"$fileDirname\\$fileBasenameNoExtension.exe",
"-I",
"c:\\opencv_z\\build\\include",
"-L",
"c:\\opencv_z\\releases\\bin",
"-llibopencv_core451",
"-llibopencv_highgui451",
"-llibopencv_imgcodecs451",
"-llibopencv_imgproc451",
],
"options":
"cwd": "$workspaceFolder"
,
"problemMatcher": [
"$gcc"
],
"group":
"kind": "build",
"isDefault": true
]
有什么提示可以解决吗?
【问题讨论】:
libopencv_core451.dll 有导出吗?它们是如何装饰的 - gcc 或 ms 风格? ***.com/q/65219534/5482465 【参考方案1】:罪魁祸首是:
我的PATH
中有两个 64 位 libstdc++-6.dll
文件。不幸的是,旧的位于顶部,因此任何对 64b 位 libstdc++-6.dll
的请求都将绑定到顶部。
因此,我需要新应用程序的应用程序崩溃了。交换它们可以解决问题。
使用 32 位版本的 MinGW 也可以解决这个问题,但这是一个非常有争议的选择!
【讨论】:
这是编译器中的已知错误?以上是关于使用 MingW 运行 OpenCV 项目时出现入口点错误的主要内容,如果未能解决你的问题,请参考以下文章
Windows系统下使用Mingw编译并运行opencv教程
Windows系统下使用Mingw编译并运行opencv教程