环境说明
有空再补充
直接贴两个json
tasks.json
json
{
"version": "2.0.0",
"tasks": [
{
"label": "cmake",
"type": "shell",
"command": "cmake",
"args": [
"../"
],
"options": {
"cwd": "${fileDirname}/../build"
},
},
{
"label": "make",
"type": "shell",
"command": "make",
"args": [],
"options": {
"cwd": "${fileDirname}/../build"
},
},
{
"label": "build",
"dependsOn":["cmake", "make"]
},
],
}
为了防止出错,"cwd": "${fileDirname}/.../build"建议写绝对地址,我的src和build是分开的,大家的不一定和我一样
launch.json
json
{
"version": "0.2.0",
"configurations": [
{
"name": "g++ - Build and debug active file",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}/../lib/${fileBasenameNoExtension}",
"args": ["para1", "para2"],
"stopAtEntry": false,
"cwd": "${fileDirname}",
"environment": [
{
"name": "LD_LIBRARY_PATH",
"value": "${workspaceFolder}/lib:$LD_LIBRARY_PATH"
}
],
"externalConsole": false,
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "build",
// "miDebuggerPath": "/usr/bin/gdb"
"miDebuggerPath": "/home/USERID/Desktop/aheadform/wukong_large/Proj_01/run.sh"
}
]
}
- 注意事项
-
使用"miDebuggerPath": "/usr/bin/gdb"可能会导致某些接口没有足够权限调用 ,或者每次需要输入密码的情况发生,故这里改成了 "miDebuggerPath": "/home/USERID/Desktop/aheadform/xxxx/Proj_01/run.sh",用一个脚本间接启动gdb,注意这里填脚本的地址,脚本放哪里都行
shell#!/bin/bash exec sudo /usr/bin/gdb "$@"
在创建完脚本后,要用
shellsudo chmod + x 脚本.sh //或者 sudo chmod 777 脚本.sh
为脚本赋予执行权限
-
编译时,可能会出现某某环境变量找不到 的现象,"environment"就是用来解决这个的,哪个环境变量找不到,就把它塞进"environment"里,按照
json{ "name": "LD_LIBRARY_PATH", "value": "${workspaceFolder}/lib:$LD_LIBRARY_PATH" }
的格式添加需要的环境变量,比如我这里就是LD_LIBRARY_PATH找不到(编译时报错提示电脑不认识.so库的路径)
-
"program"的值是make生成的可执行文件的路径,不要被我这里误导了,我只是这个工程的环境依赖有点问题,所以生成到lib下面了,如果有同学和我这个奇葩工程一样的,记得修改这一项