Windows 下 VSCode 的 CC++ 环境配置、CMake 使用和代码调试

Windows 下 VSCode 的 CC++ 环境配置、CMake 使用和代码调试,第1张

Windows 下 VSCode 的 C/C++ 环境配置、CMake 使用和代码调试
    • 一、软件下载
    • 二、安装VSCode和扩展
    • 三、配置MinGW和CMake
    • 四、在VSCode中使用CMake进行代码编译、链接
    • 五、调试

个人学习记录 https://space.bilibili.com/434013215

一、软件下载
  • VSCode官网
    VSCode官网下载非常慢,将下载源改为国内的镜像源:
    先复制下载地址:https://az764295.vo.msecnd.net/stable/dfd34e8260c270da74b5c2d86d61aee4b6d56977/VSCodeUserSetup-x64-1.66.2.exe
    然后将 https://az764295.vo.msecnd.net 改为 https://vscode.cdn.azure.cn
    https://vscode.cdn.azure.cn/stable/dfd34e8260c270da74b5c2d86d61aee4b6d56977/VSCodeUserSetup-x64-1.66.2.exe
  • MinGW和CMake下载: https://pan.baidu.com/s/14tMTYSUC6lNk7pmCCktr-w 提取码:2184
二、安装VSCode和扩展

VSCode下载完成后直接双击安装即可。安装完成后打开VSCode,搜索并安装以下扩展:

  • C/C++ VSCode的C/C++语言支持
  • C/C++ Compile Run 或者 Code Runner 用于编译和运行单个C/C++文件
  • Better C++ Syntax 代码着色
  • CMake- CMake Tools
三、配置MinGW和CMake

解压MinGW和CMake文件,将MinGW和CMake文件夹中的bin目录添加到坏境变量:D:\Software\mingw64\bin,D:\Software\CMake\bin添加完成重启电脑后生效。

四、在VSCode中使用CMake进行代码编译、链接

测试文件:

//main.cpp
#include 
#include "swap.h"

int main()
{
    int a = 10, b = 20;
    std::cout << "Before Swap:" << std::endl;
    std::cout << "a = " << a << "   b = " << b << std::endl;
    swap(a, b);
    std::cout << "After Swap:" << std::endl;
    std::cout << "a = " << a << "   b = " << b << std::endl;
    std::cout << "end!" << std::endl;
    return 0;
}  
//swap.cpp
#include "swap.h"

void swap(int &a, int &b)
{
    int temp = a;
    a = b;
    b = temp;
}
//swap.h
void swap(int &a, int &b);
//CMakeLists.cpp
cmake_minimum_required(VERSION 3.17.0)

project(demo)

add_executable(demo ./main.cpp ./swap.cpp)

写好测试代码和CMakeLists.txt之后,按下 Ctrl +Shift + p 键,搜索 CMake ,选择 CMake:Configure --> GCC 8.1.0 ×86_64-w64***

完成后会在当前目录下自动生成一个 build 文件夹。这一步还有另一种做法,首先手动新建一个 build 文件夹,然后 cd 进入 build 文件夹,输入命令 cmake ..(如果电脑中安装了Visual Studio,可能会调用MSVC编译器,需要用cmake -G “MinGW Makefiles” .. 代替 cmake ..)。最后 mingw32-make.exe 生成目标文件。

mkdir build
cd build
cmake ..			// cmake -G "MinGW Makefiles" ..
mingw32-make.exe	// 相当于Liunx中的 make

需要用到外部库的时候,通过在c_cpp_properties.json中的includePath字段添加包含目录。

五、调试

点击左侧的运行和调试按钮,选择创建launch.json文件–>C++ (GDB/LLDB)–>g++.exe-生成和调试活动文件生成 json 文件。

这时可能会报错,这是因为 json 文件没有配置好,打开刚刚生成的.vscode文件夹中的launch.json文件,修改program的exe文件目录,注释掉preLaunchTask。在程序中设置好断点,按F5即可进入代码调试。

前面在launch.json中注释掉了preLaunchTask,这是因为tasks.json没有配置好。preLaunchTask顾名思义就是在进行调试前需要先进行的 *** 作。C++程序在执行或者调试前需要先进行编译、链接等 *** 作,如果我们对源码进行了修改,那么在运行或调试代码前需要先对代码进行编译、链接,因此希望可以在按下F5进行代码调试时,能够自动先对代码进行编译、链接等(也就是cmake .. make)。这时preLaunchTask的作用就体现出来了,我们可以通过配置tasks.json文件实现编译、链接等 *** 作。具体tasks.json文件的配置如下:

# tasks.json
{
"version": "2.0.0",
    "options": {
        "cwd": "${workspaceFolder}/build"	# 命令执行的路径,工作目录下的 build 文件夹
    },
    "tasks": [
        {
            "type": "shell",
            "label": "cmake",				# 执行 cmake .. 命令
            "command": "cmake",
            "args": [
                ".."
            ],
        },
        {
            "label": "make",				# 执行 make 命令,Windows中为mingw32-make.exe
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "command": "mingw32-make.exe",  # Linux中为make
            "args": [

            ],
        },
        {
            "label": "Build",				# 任务名称,与launch.json中的perLaunchTask字段一致
            "dependsOn":[
                "cmake",
                "make"
            ]
        }
    ],
}

配置好tasks.json文件后,在launch.json文件中把perLaunchTask字段的注释去掉,并改成和tasks.json中的label相一致。
这时我们代码进行修改时,按下F5就会自动先执行cmake ..make命令,无需再手动执行一遍了。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/727001.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-26
下一篇 2022-04-26

发表评论

登录后才能评论

评论列表(0条)

保存