安装编译工具链
- 安装编译工具
sudo apt update
sudo apt-get install build-essential gbd
sudo apt-get install cmake
- 验证是否安装成功
gcc --version
g++ --version
gbd --version
cmake--version
安装Vscode插件
- 首先通过remote_wsl连接WSL2
- 在连接WSL的状态下安装C++、Cmake、CmakeTools等一系列工具
创建工程
- 创建如下目录
Projects └── Demo ├── include │ └── HelloWorld.h ├── main.cpp └── src └── HelloWorld.cpp 其中Projects为工作空间,Demo为项目
- F5选择工具链即可进行编译运行,但此时会报错,因为此时我们没有告诉vscode如何编译和调试程序
更改Tasks.json
- 通过
ctrl+shift+p
打开命令窗口,输入Configure Default Build Task
,并选择g++
,即可在.vscode文件夹中看到Tasks.json
文件。Tasks文件一般用于编译程序。 - args数组包含将传递给 g++ 的命令行参数(必须按照编译器预期的顺序指定)。类似于在命令行中运行
g++ -g.. -o.. -I..
的命令。 -g
表示待编译的活动文件,对它进行编译。这里指工作空间/Demo
下所有的.cpp
文件-o
表示在文件被编译后生成与活动文件同名无后缀的可执行文件${fileDirname}/${fileBasenameNoExtension}
-I
表示编译程序按照-I指定的路进去搜索头文件。这里指工作空间/Demo/include
下所包含的头文件"args": [ "-fdiagnostics-color=always", "-g", "${workspaceFolder}/Demo/**.cpp",//编译Demo目录下所有.cpp文件 "${workspaceFolder}/Demo/src/**.cpp",//编译Demo/src目录下所有.cpp文件 "-o", "${fileDirname}/${fileBasenameNoExtension}", //添加如下内容以启用多文件编译 "-I", "${workspaceFolder}/Demo/include",//头文件目录 "-pthread" ],
生成launch.json
- 通过
ctrl+shift+p
打开命令窗口,输入g++ build and debug active file
,自动生成launch.json文件。launch文件一般用于调试程序。
{
"configurations": [
{
"name": "C/C++: g++ 生成和调试活动文件",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}/${fileBasenameNoExtension}",
"args": [],
"stopAtEntry": false,
"cwd": "${fileDirname}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
},
{
"description": "将反汇编风格设置为 Intel",
"text": "-gdb-set disassembly-flavor intel",
"ignoreFailures": true
}
],
"preLaunchTask": "C/C++: g++ 生成活动文件",
"miDebuggerPath": "/usr/bin/gdb"
}
],
"version": "2.0.0"
}
- 点击F5即可进行build & debug
reference
linux 下 g++编译程序时,-I(大写i) 与-L(大写l)-l(小写l) 的作用
详解Linux下使用vscode编译运行和调试C/C++