运行 OpenCV 使用 MingW 项目时的入口点错误

Entry point errors when running OpenCV projects with MingW

我已经在 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
            }
        }
    ]
}

有什么提示可以解决吗?

罪魁祸首是:

我的 PATH 中有两个 64 位 libstdc++-6.dll 文件。不幸的是,较旧的位于顶部,因此任何对 64b 位的请求 libstdc++-6.dll 都将绑定到顶部。

因此,我需要新应用程序的应用程序崩溃了。交换它们可以解决问题。

使用32位版本的MinGW也可以解决这个问题,但这是一个非常有争议的选择!