背景: 之前使用VS code写c++时,没使用到多文件,所以对launch.jason和task.jason配置没过多配置,但不支持多文件间的编译,调试。
注:主要针对较大的一些工程,涉及多个文件的编译,使用到Makefile。如果一个头文件和cpp文件可以看其他教程
平台:Ubuntu 16.04 LTS && VS Code 1.22
在官网查看帮助文档,介绍了python的json文件的配置,有些默认版本并不对应,不具备解决我的要求。所以查了一些其他资料,解决问题。至于json文件怎么出来,不介绍了。在欢迎界面有些使用教程和命令,先熟悉下这个再说。
…
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/dstar", //这里因为我调试的是dstar算法,所以调试文件换成dstar
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": true,
"preLaunchTask": "build", //重点,这个是模板没有的选项,须额外加入
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
},
{
"name": "(gdb) Attach",
"type": "cppdbg",
"request": "attach",
"program": "${workspaceFolder}/build", //这个改下
"processId": "${command:pickProcess}",
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
},
]
}`
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "build",
"type": "shell",
"command": "make", //主要的就是这个,表示执行make命令(注,文件夹下需要Makefile文件)
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
当你Ctrl+Shile+B进行编译时(再次强调欢迎界面的使用文档看下,熟悉一下),可能出现上述问题。这个是说已经编译过该项目,没有任何改动,不再麻烦编译器了。
测试:make clean 这时看到左上方文件列表中的dstar执行文件删除。再Ctrl+Shile+B
编译成功,执行文件dstar重新出现。
给个执行后的图像吧