- 一、软件下载
- 二、安装VSCode和扩展
- 三、配置MinGW和CMake
- 四、在VSCode中使用CMake进行代码编译、链接
- 五、调试
一、软件下载个人学习记录 https://spaclass="superseo">ce.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,搜索并安装以下扩展:
- C/C++ VSCode的C/C++语言支持
- C/C++ Compile Run 或者 Code Runner 用于编译和运行单个C/C++文件
- Better C++ Syntax 代码着色
- CMake- CMake Tools
解压MinGW和CMake文件,将MinGW和CMake文件夹中的bin目录添加到坏境变量:D:\Software\mingw64\bin,D:\Software\CMake\bin添加完成重启电脑后生效。
测试文件:
//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
命令,无需再手动执行一遍了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)