1. 問題背景
網上搜的一堆文章都是教如何調試單個文件,或者一個文件夾下含了所有cc和頭文件,但很多項目頭文件和實現在上級目錄的子文件中,vscode直接調試main函數所在文件時,直接報錯某些頭文件找不到(xxx.h not found 或者 undefine reference before),還有很多文章提到c_cpp_properties.json,可本菜壓根都沒碰到,配了也不會主動去搜索。
2.解決方法
vscode能調試的關鍵:能生成 .o可執行文件即可
vscode調試前會運行,然后在.vscode文件夾下會生成一個tasks.json文件
/usr/bin/g++ -g 目錄/文件 -o 輸出名字
要解決多個文件跨文件夾依賴問題,笨辦法接去修改tasks.json(如下)也可以,只要能順利編譯,vscode就在編輯器中打斷點調試了,有更快捷方法的大佬留言教教。
{"tasks": [{"type": "cppbuild","label": "C/C++: g++ 生成活動文件","command": "/usr/bin/g++","args": ["-fdiagnostics-color=always","-g","${fileDirname}/*.cc","home/webserver/src/base/*.cc","各種要用到的cc""-o","${fileDirname}/${fileBasenameNoExtension}", "-I","各種頭文件所在目錄(如下),記得一個目錄加一個-I,有動態庫-L依此類推","-I","/home/webserver/src/base" ],"options": {"cwd": "${fileDirname}"},"problemMatcher": ["$gcc"],"group": {"kind": "build","isDefault": true},"detail": "調試器生成的任務。"}],"version": "2.0.0"
}