Win10 下利用VScode+MinGW+Opencv+Cmake构建C++的开发环境

在VScode上开发python是一件非常完美的事情,加上Win10的Powershell的终端环境,让你有一种在linux下开发的感觉,后面想开发一个C++的开发环境,在网上看了很多的教程,终于实现了,具体的操作过程这里不做过多的描述,看网上的教程就可以了,这里只备注一些要走注意的事项。

1. MinGW的选择,不要直接下载,要选择posix-seh的版本下载,不要问为什么,编译opencv的时候你就知道了,直接下载的会报一系列错误。

2. opencv的编译,使用以下方式

一定要勾选CXX11

如果报下面错,CPU_DISPATCH 选AVX2

ccp8vLwk.s:22235: Error: invalid register for .seh_savexmm

添加opencv_contrib

最后选择编译成libopencv_world的一个库,方便。

3.VScode 的配置

c_cpp_properties.ison

{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**",
                "D:/opencv-3.4.1/build/MinGW/install/include" //加入opencv库目录,增加opencv代码补全及提示
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "windowsSdkVersion": "10.0.17763.0",
            "compilerPath": "D:/mingw64/bin/g++.exe",
            "cStandard": "c17",
            "cppStandard": "c++17",
            "configurationProvider": "ms-vscode.cmake-tools"
        }
    ],
    "version": 4
}

lunch.json

{
    "version": "0.2.0",
    "configurations": [
    	// Debug 1,这里也可以配置多个Debug任务,这其实和tasks.json很类似
        {
            "name": "first_exe", // Debug任务名
            "type": "cppdbg", // 类型
            "request": "launch",
            "program": "${workspaceFolder}/build/OpencvST.exe", // 需要调试的应用程序,这是需要按照你的需要进行调整的
            "args": [], // 传递参数给应用程序
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}", // 当前工作路径
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "D:/mingw64/bin/gdb.exe", // 这里需要填写你自己的gdb.exe的路径
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "console": "externalTerminal"
        }
    ]
}

settings.ison

{
    "cmake.generator": "MinGW Makefiles"
}

tasks.json

{
	// 这里配置了三个Task
    "tasks": [
    	// Task 1:生成build文件夹
        {
            "type": "shell", // 这里决定了task的类型,shell类型就是在命令行里运行command的命令,还有一种类型是“process”,这里就不介绍了
            "label": "mk_build", // task的名字
            "command": "mkdir", // 需要被运行的命令
            "args": ["build"], // 传递给command的参数
            "options": {
                "cwd": "${workspaceFolder}",
            },
        },
        // Task 2:运行cmake
        {
            "type": "shell",
            "label": "cmake",
            "command": "cmake",
            "args": [
                "-G",
                "MinGW Makefiles", // 这里必须定义生成器,否则默认cmake生成的是VS Studio可编译的工程
                "${workspaceFolder}"
            ],
            "options": {
                "cwd": "${workspaceFolder}/build", // 工作路径,就是说cmake的输出都会放在${workspaceFolder}/build文件夹下
            },
            "problemMatcher": [],
            "group": {
                "kind": "build",
                "isDefault": true
            }
        },
        // Task 3:运行make
        {
            "type": "shell",
            "label": "build",
            "command": "mingw32-make",
            "args": ["-j4"],
            "options": {
                "cwd": "${workspaceFolder}/build",
            },
            "problemMatcher": [],
            "group": {
                "kind": "build", // 这里说明这个任务时输入"build"类型的,也就是说明,这是一个生成任务
                "isDefault": true
            },
            "dependsOn": [
                "cmake" // 这里设置,说明了这个任务一定要在Task “cmake”执行之后方可执行
            ]
        }
    ],
    "version": "2.0.0"
}

4. CMakeLists.txt添加opencv

cmake_minimum_required(VERSION 3.0)
project(OpencvST)

#添加OpenCV的目录
set(OpenCV_DIR D:/opencv-3.4.1/build/MinGW/install)
#寻找OpenCV库
find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
#打印调试信息
message(STATUS "Project: ${PROJECT_NAME}")
message(STATUS "OpenCV library status:")
message(STATUS "    version: ${OpenCV_VERSION}")
message(STATUS "    libraries: ${OpenCV_LIBS}")
message(STATUS "    include path: ${OpenCV_INCLUDE_DIRS}")

set(SOURCE src/opencvst.cpp)
add_executable(${PROJECT_NAME} ${SOURCE})

#添加链接库
target_link_libraries(${PROJECT_NAME} ${OpenCV_LIBS})

5. 运行OPencv显示图片不出来,并且调试控制台报错

将编译好的libopencv_world341.dll放在生成文件的目录下

最后看一下成果吧

注:我安装的所有的资源都在这里,其中包含MinGW,Cmake,以及Opencv,当然,编译好的opencv在这里,如果你怕编译出错或麻烦的话。

powershell 修改New-Item 命令为touch

function touch {set-content -Path ($args[0]) -Value ($null)}

 

 

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值