在VS代码中使用OpenCV

在VS代码中使用OpenCV,opencv,visual-studio-code,mingw,Opencv,Visual Studio Code,Mingw,我正在使用VS代码、Mingw和OpenCv库编写一个简单的程序。我从下载了一个预构建OpenCV包,并按照本文中的说明构建代码。我可以成功地建立程序没有错误,但有一个问题。当我调用OpenCV函数(如cv::imread)时,会出现分段错误。如果您能提供任何帮助,我们将不胜感激 task.json { "version": "2.0.0", "tasks": [ { "type": "shell", "label"

我正在使用VS代码、Mingw和OpenCv库编写一个简单的程序。我从下载了一个预构建OpenCV包,并按照本文中的说明构建代码。我可以成功地建立程序没有错误,但有一个问题。当我调用OpenCV函数(如
cv::imread
)时,会出现分段错误。如果您能提供任何帮助,我们将不胜感激

task.json

{
    "version": "2.0.0",
    "tasks": [
        {
            "type": "shell",
            "label": "C/C++: gcc.exe build active file",
            "command": "C:\\mingw\\mingw64\\bin\\g++.exe",
            "args": [
                "-g",
                "${file}",
                "${workspaceFolder}/utils.cpp",
                "-o",
                "${fileDirname}\\${fileBasenameNoExtension}.exe",
                "-IC:\\OpenCV\\include",
                "-LC:\\OpenCV\\x64\\mingw\\bin",
                "-llibopencv_calib3d341",
                "-llibopencv_core341",
                "-llibopencv_dnn341",
                "-llibopencv_features2d341",
                "-llibopencv_flann341",
                "-llibopencv_highgui341",
                "-llibopencv_imgcodecs341",
                "-llibopencv_imgproc341",
                "-llibopencv_ml341",
                "-llibopencv_objdetect341",
                "-llibopencv_photo341",
                "-llibopencv_shape341",
                "-llibopencv_stitching341",
                "-llibopencv_superres341",
                "-llibopencv_video341",
                "-llibopencv_videoio341",
                "-llibopencv_videostab341"
            ],
            "options": {
                "cwd": "C:\\mingw\\mingw64\\bin"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": "build"
        },
        {
            "type": "shell",
            "label": "g++.exe build active file",
            "command": "C:\\mingw\\mingw64\\bin\\g++.exe",
            "args": [
                "-g",
                "${file}",
                "-o",
                "${fileDirname}\\${fileBasenameNoExtension}.exe"
            ],
            "options": {
                "cwd": "C:\\mingw\\mingw64\\bin"
            }
        }
    ]
}


c_cpp_properties.json

{
    "configurations": [{
        "name": "Win32",
        "includePath": [
            "${workspaceFolder}/**",
            "C:/OpenCV/include/**"
        ],
        "defines": [
            "_DEBUG",
            "UNICODE",
            "_UNICODE"
        ],
        "windowsSdkVersion": "8.1",
        "compilerPath": "C:\\mingw\\mingw64\\bin\\g++.exe",
        "cStandard": "c11",
        "cppStandard": "c++17",
        "intelliSenseMode": "gcc-x64"
    }],
    "version": 4
}


这在Windows上吗?如果是这样的话,我认为问题不在于你的VS代码文件,如果你只是在构建之后才面临问题的话。您可能想检查您的opencv或mingw-w64安装,是否使用cmake构建和安装?对于Mingw64,您的安装配置是否适合您的计算机

当然,假设所有内容都已添加到Windows path环境变量中,我使用自己的opencv Windows vs代码环境测试了
cpp_properties.json
tasks.json
设置。我所做的唯一不同的事情就是消除了包括错误在内的错误,例如:

        "problemMatcher": {
            "base": "$gcc",
            "fileLocation": [
                "absolute"
            ]
        },
        "group": {
            "kind":"build",
            "isDefault": true
        }

到我的
tasks.json problemMatcher
语句和
group
语句,以便系统能够正确地找到opencv库。我也不知道
“${workspaceFolder}/utils.cpp”
行在
tasks.json
中做了什么,但不管怎样,如果你能够构建良好的,我觉得mingw或opencv更可能存在潜在问题。

这是Windows上的吗?如果是这样的话,我认为问题不在于你的VS代码文件,如果你只是在构建之后才面临问题的话。您可能想检查您的opencv或mingw-w64安装,是否使用cmake构建和安装?对于Mingw64,您的安装配置是否适合您的计算机

当然,假设所有内容都已添加到Windows path环境变量中,我使用自己的opencv Windows vs代码环境测试了
cpp_properties.json
tasks.json
设置。我所做的唯一不同的事情就是消除了包括错误在内的错误,例如:

        "problemMatcher": {
            "base": "$gcc",
            "fileLocation": [
                "absolute"
            ]
        },
        "group": {
            "kind":"build",
            "isDefault": true
        }
到我的
tasks.json problemMatcher
语句和
group
语句,以便系统能够正确地找到opencv库。我也不知道
“${workspaceFolder}/utils.cpp”
行在
tasks.json
中做了什么,但不管怎样,如果您能够构建良好的,在我看来,mingw或opencv更可能存在潜在问题