九 附录¶
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提示所有支持的预定义变量.