Windows环境下vscode中配置opencv/c++出现问题

1.问题

在vscode中配置opencv库,安装一直不成功,看过很多文章,基本思路大体都一行,就是在编译过程中出现各种问题,消耗了一天半的时间,出现接连的错误时几乎奔溃,决定记下帮助更多人避坑。

之前一直用的python环境下使用opencv。是之前就安装vscode,及C++配置,最近配置opencv时,出现很多问题,解决文章已有很多,总结下自己的安装步骤。

2.解决

在看了很多博文和视频后。推荐一位博主的安装视频

https://www.bilibili.com/video/BV1vv41137Hu/?spm_id_from=333.337.search-card.all.click&vd_source=2e33085512e31cc1becd7895aabcebe8有视频并配有文章。

便是按照这个视频步骤进行的,在进行到3分20秒后作者不没有进行详细的操作,省略掉的步骤参考这个博主的文章https://blog.youkuaiyun.com/scott198510/article/details/125843447(我大体框架参考这边博文)中的这一段,如下所示。

所有的红色config完后,在通过输入搜索找的上述字母内容进行勾选的添加或去除。然后再点击Generate。接下来可以回到视频中继续进行了,进行minGW32-make install漫长的安装,配置相关文件。

注意:cmake_gui中出现:error in configuration process, project files may be invalid,时可能opencv源文件路径没有找对。

1.解决编译不通过

经过我一段时间的安装,最终还是再46%处出现了问题。老是在编译过程中出了问题。后来经过一天的网上各种博客/视频,终于找到问题的所在,问题出现在编译过程中,config后,下面框中会出现一部分红色报错

查看红色中的错误,缺少相关opencv_word.dll两个文件。可以参考下这个视频中的cmake过程(中间时间段,评论下面会有两个文件网盘连接)https://www.bilibili.com/video/BV1Za4y1v7ra/?spm_id_from=333.999.0.0&vd_source=2e33085512e31cc1becd7895aabcebe8将两个文件放置到相应文件夹下。

如果还有其它红色报错问题,复制出来网上搜索下,基本都能找到问题(我的发现是某个对号没有打上)。再config后我的就没有没有出现红色报错问题,然后可以generate了。接下来的编译很顺利,没有出现任何问题(opencv文件放置路径文件夹名字好像不是不能有空格,我是改过文件放置地方)。嗷嗷

2.vscode配置过程中的一些小问题,会出现找不到头文件路径。#include<opencv2/opencv.hpp> 没有文件,

https://blog.youkuaiyun.com/qq_37379108/article/details/106367869参考。文件配置有问题,一定要配置好。

我的三个文件配件配置为如下,可参考一下。

c_cpp_properties.json

{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**",
                "C:/Library/CPP/mingw64-posix/include/**",
                // "C:/Library/CPP/mingw64-posix/x86_64-w64-mingw32/include/**",

                "D:/Opencv_cplus/opencv4/build/install/include",
                "D:/Opencv_cplus/opencv4/build/install/include/opencv2"
                // "D:/Opencv_cplus/opencv4/build/install/x64/mingw/lib"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "compilerPath": "C:/Library/CPP/mingw64-posix/bin/g++.exe",
            "cStandard": "c11",
            "cppStandard": "c++17",
            "intelliSenseMode": "windows-gcc-x64"
        }
    ],
    "version": 4
}

launch.json

{
    "version": "0.2.0",
    "configurations": [
        
        {
            "name": "opencv4.5.3 debuge",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}\\${fileBasenameNoExtension}.exe",
            "args": [],
            "stopAtEntry": false,  //这里如果为 false,则说明调试直接运行。(反之则停止)
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": true, //是否调用外部cmd
            "MIMode": "gdb", 
            "miDebuggerPath": "C:/Library/CPP/mingw64-posix/bin/gdb.exe",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": false
                }
            ],
            "preLaunchTask": "opencv4.5.3 compile task"
        }
    ]
}

task.json

{
	"version": "2.0.0",
	"tasks": [
		{
			"type": "cppbuild",
			"label": "opencv4.5.3 compile task",
			"command": "C:\\Library\\CPP\\mingw64-posix\\bin\\g++.exe",
			"args": [
				"-g",
				"-std=c++11",
        		"-fexec-charset=GBK",
        		"-finput-charset=UTF-8",
				"${file}",
				"-o",
				"${fileDirname}\\${fileBasenameNoExtension}.exe",
                "-I","D:/Opencv_cplus/opencv4/build/install/include",
                "-I","D:/Opencv_cplus/opencv4/build/install/include/opencv2",
				"-L","D:/Opencv_cplus/opencv4/build/bin",
				"-l","libopencv_world453"
			
			],
			"options": {
				"cwd": "${workspaceFolder}"
			},
			"problemMatcher": [
				"$gcc"
			],
			"group": {
				"kind": "build",
				"isDefault": true
			},
			"detail": "编译器: C:\\Library\\CPP\\mingw64-posix\\bin\\g++.exe"
		}
	]
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值