附录¶
vscode通过tasks.json文件进行编译生成可执行文件, 因此实现的功能就是[[01-g++]], [[02-compile]]中编译的步骤
通过终端-> 配置任务 -> 创建tasks.json
下面分为两种情况: * 使用g++编译可执行文件 * 使用cmake编译可执行文件
使用g++编译可执行文件¶
JSON | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
|
g++ -Wall -std=c++17 file.cpp -o a.out
可以通过vscode中终端-> 运行生成任务
或者ctrl + shift + B
来生成可执行文件
使用cmake编译可执行文件¶
也是通过配置tasks.json文件进行编译, 与g++不同, 需要设置成cmake编译可执行文件的步骤。
Bash | |
---|---|
1 2 3 4 |
|
JSON | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
|
利用launch.json文件进行调试¶
无论是g++或者cmake, 通过建立对应的tasks.json文件生成的可执行文件, 都采用gdb进行调试, 下面是具体的launch.json中的内容
JSON | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
|
预定义变量¶
支持下面的预定义变量:
- ${workspaceFolder} - 当前工作目录(根目录)
- ${workspaceFolderBasename} - 当前文件的父目录
- ${file} - 当前打开的文件名(完整路径)
- ${relativeFile} - 当前根目录到当前打开文件的相对路径(包括文件名)
- ${relativeFileDirname} - 当前根目录到当前打开文件的相对路径(不包括文件名)
- ${fileBasename} - 当前打开的文件名(包括扩展名)
- ${fileBasenameNoExtension} - 当前打开的文件名(不包括扩展名)
- ${fileDirname} - 当前打开文件的目录
- ${fileExtname} - 当前打开文件的扩展名
- ${cwd} - 启动时task工作的目录
- ${lineNumber} - 当前激活文件所选行
- ${selectedText} - 当前激活文件中所选择的文本
- ${execPath} - vscode执行文件所在的目录
- ${defaultBuildTask} - 默认编译任务(build task)的名字
预定义变量示例:¶
假设你满足以下的条件
- 一个文件
/home/your-username/your-project/folder/file.ext
在你的编辑器中打开; - 一个目录
/home/your-username/your-project
作为你的根目录.
下面的预定义变量则代表:
- ${workspaceFolder} -
/home/your-username/your-project
- ${workspaceFolderBasename} -
your-project
- ${file} -
/home/your-username/your-project/folder/file.ext
- ${relativeFile} -
folder/file.ext
- ${relativeFileDirname} -
folder
- ${fileBasename} -
file.ext
- ${fileBasenameNoExtension} -
file
- ${fileDirname} -
/home/your-username/your-project/folder
- ${fileExtname} -
.ext
- ${lineNumber} - 光标所在行
- ${selectedText} - 编辑器中所选择的文本
- ${execPath} - Code.exe的位置
Tip: vscode的智能提示会在
tasks.json
和launch.json
提示所有支持的预定义变量.