环境说明
有空再补充
直接贴两个json
tasks.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
{"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,注意这里填脚本的地址,脚本放哪里都行
在创建完脚本后,要用#!/bin/bashexec sudo /usr/bin/gdb "$@"
为脚本赋予执行权限sudo chmod + x 脚本.sh //或者 sudo chmod 777 脚本.sh
- 编译时,可能会出现某某环境变量找不到的现象,"environment"就是用来解决这个的,哪个环境变量找不到,就把它塞进"environment"里,按照
的格式添加需要的环境变量,比如我这里就是LD_LIBRARY_PATH找不到(编译时报错提示电脑不认识.so库的路径){"name": "LD_LIBRARY_PATH","value": "${workspaceFolder}/lib:$LD_LIBRARY_PATH"}
- "program"的值是make生成的可执行文件的路径,不要被我这里误导了,我只是这个工程的环境依赖有点问题,所以生成到lib下面了,如果有同学和我这个奇葩工程一样的,记得修改这一项