欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Windows+VSCode+MinGW+CMake环境配置

程序员文章站 2024-02-19 19:37:40
...

引言

这篇博客介绍的是,如何在windows环境下搭建基于CMake和GCC的开发环境。这里使用的编辑器是VSCode。害怕麻烦的同学不应该搭建这个开发环境,应该直接使用VS Studiao的集成开发环境。
而我之所以要搭建这个环境,是因为为了方便在Windows下写好程序,直接移植到Linux系统,这样配置基本可以做到不需要怎么改。
OK,让我们开始吧~~~

1 软件安装

配置这个环境的前提是要安装好:

  • VSCode
  • CMake
  • MinGW
    关于这三个软件的安装,这里就不多介绍了,但是需要注意的是,在安装好后,需要把CMake和MinGW的环境变量设置到系统环境变量中。
    具体而言,就是要把包含有cmake-gui.exegcc.exe,g++.exe,gdb.exe等应用程序的路径包含到环境变量中,在我的电脑上这两个路径分别为:
D:\software\cmake-3.18.0-rc3-win64-x64\bin
D:\software\MinGW64\bin

此外,在VSCode中,需要下载好以下四个插件:

  • C/C++
  • C++ Intellisense
  • CMake
  • CMake Tools
    这里面的前两个插件是提供C++自动代码补全的支持的,后两个是提供CMake代码自动补全支持的插件。务必都要下载。

2 创建工程

打开VSCode,创建一个main.cpp,创建一个CMakeLists.txt
main.cpp

#include <iostream>
using namespace std;
int main(int agec, char **argv) {
	cout << "Hello world" << endl;
    return 0;
}

CMakeLists.txt

cmake_minimum_required(VERSION 3.0)
project(cmake_test_project)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g")
add_executable(${PROJECT_NAME} ${DIR_TOOT_SRCS})

3 环境配置

3.1 配置编译(Build)环境

在这里我们使用VSCode中的Task来配置工程的编译环境。
具体来说,就是我们定义一个Task,这个Task的主要工作就是编译工程。

操作步骤:
  • 1、产生tasks.json配置文件
    • 这里有两种方法:
      • 一是:点击上方菜单栏的“终端”>"配置任务"or“配置生成任务”;
      • 二是:“Ctrl+Shift+P”,输入task,选择“任务:配置任务”即可。
    • 这里生成的tasks.json会出现在.vscode文件夹下。
    • 这里需要说明的是,“任务”和“生成任务”的区别就在于,生成任务属于“build”的group,二者没有本质区别。
  • 2、配置tasks.json文件,具体可见下方程序实例:
    这里tasks.json文件是通用的,你可以复制到自己的工程中使用。
    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"
}
  • 3、执行任务:Ctrl+Shift+B即可执行定义好的生成任务。另外,也可以通过菜单栏的“终端”栏目运行任务。

3.2 配置调试(Debug)环境

VSCode的提供了一个调试的环境,但是我们需要先配置好launch.json,才可以使用这一个功能。
这里我们介绍操作步骤:

  • 1、创建launch.json文件
    • 这里同样有两种方法:
      • 一是:点击上方菜单栏的“运行”>“打开配置”;
      • 二是:“Ctrl+Shift+P”,输入debug,选择“调试:打开launch.json”即可。
  • 2、配置launch.json文件,具体可见下方程序实例:

launch.json

{
    "version": "0.2.0",
    "configurations": [
    	// Debug 1,这里也可以配置多个Debug任务,这其实和tasks.json很类似
        {
            "name": "first_exe", // Debug任务名
            "type": "cppdbg", // 类型
            "request": "launch",
            "program": "${workspaceFolder}/build/cmake_test_project.exe", // 需要调试的应用程序,这是需要按照你的需要进行调整的
            "args": [], // 传递参数给应用程序
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}", // 当前工作路径
            "environment": [{"name": "PATH","value": "${PATH};D:/software/opencv/build-gcc/bin;D:/software/aruco/bin"}], // 这里需要特别注意,这里要把应用程序运行需要的动态链接库的路径,放进来,这里也需要你根据自己需要进行调整,我在这里给出一个示范
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "D:/software/TDM-GCC-64/bin/gdb.exe", // 这里需要填写你自己的gdb.exe的路径
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}
  • 3、执行调试:F5

3.3 配置代码自动补全环境

一般来说,把上面两个都配置好,就可以在VSCode里写程序,编译程序,调试程序了。

但是,还有一个非常严重的问题,就是一般的关于C/C++的默认库函数,VSCode是可以自动补全的,只要安装了C/C++插件就够了。

但是呢,我们如果要用第三方库,VSCode就无法自动补全了。所以,我们还需要进一步地去配置。

这里我们主要是要配置C/C++插件,让这个插件可以通过CMake来找到第三方库的头文件,从而提供代码补全的支持。

具体的操作步骤如下:

  • 1、创建c_cpp_properties.json配置文件:
    • 方法:“Ctrl+Shift+P”,接着输入“C/C++”,选择“C/C++编辑配置(JSON)”
  • 2、配置c_cpp_properties.json文件,具体可见下方程序实例:

c_cpp_properties.json

{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "windowsSdkVersion": "10.0.18362.0",
            "compilerPath": "D:/software/TDM-GCC-64/bin/g++.exe", // 这里写你自己的g++的路径
            "cStandard": "c11",
            "cppStandard": "c++17",
            "intelliSenseMode": "gcc-x64",
            "configurationProvider": "vector-of-bool.cmake-tools" // 这个很重要,就是这句话在通过cmake引入第三方库的代码补全
        }
    ],
    "version": 4
}
  • 3、重启VSCode

4 结语

事实上,说了很多,关于C语言和C++的环境配置一言以蔽之就是,要保证编译器能在编译阶段能找到静态链接库,而应用软件在运行阶段,能找到动态链接库,我们所做的一切配置都是为了这两点。
OK,enjoy your coding time~~~

相关标签: 编程基础知识