環境說明
有空再補充
直接貼兩個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下面了,如果有同學和我這個奇葩工程一樣的,記得修改這一項