問題:
執行調試時,出現問題:
無法在”.vscode“文件夾(Cannot read property ‘name’ of undefined) 內創建”launch.json”文件?
解決方法:
一、創建文件夾
點擊下圖中紅框處,創建文件夾,命名為“.vscode”
二、創建launch.json
在.vscode文件夾中,創建launch.json文件,并將下面的代碼復制進去,其中,miDubuggerPath后的路徑為C++編輯器的安裝路徑
{ ????"version":?"0.2.0", ????"configurations":?[ ????????{ ????????????"name":?"(gdb)?Launch",?//?配置名稱,將會在啟動配置的下拉菜單中顯示 ????????????"type":?"cppdbg",?//?配置類型,cppdbg對應cpptools提供的調試功能;可以認為此處只能是cppdbg ????????????"request":?"launch",?//?請求配置類型,可以為launch(啟動)或attach(附加) ????????????"program":?"${fileDirname}/${fileBasenameNoExtension}.exe",?//?將要進行調試的程序的路徑 ????????????"args":?[],?//?程序調試時傳遞給程序的命令行參數,一般設為空即可 ????????????"stopAtEntry":?false,?//?設為true時程序將暫停在程序入口處,相當于在main上打斷點 ????????????"cwd":?"${workspaceFolder}",?//?調試程序時的工作目錄,此為工作區文件夾;改成${fileDirname}可變為文件所在目錄 ????????????"environment":?[],?//?環境變量 ????????????"externalConsole":?false,?//?為true時使用單獨的cmd窗口,與其它IDE一致;18年10月后設為false可調用VSC內置終端 ????????????"internalConsoleOptions":?"neverOpen",?//?如果不設為neverOpen,調試時會跳到“調試控制臺”選項卡,你應該不需要對gdb手動輸命令吧? ????????????"MIMode":?"gdb",?//?指定連接的調試器,可以為gdb或lldb。但我沒試過lldb ????????????"miDebuggerPath":?"D:mingw64bingdb.exe",?//?調試器路徑,Windows下后綴不能省略,Linux下則不要 ????????????"setupCommands":?[ ????????????????{?//?模板自帶,好像可以更好地顯示STL容器的內容,具體作用自行Google ????????????????????"description":?"Enable?pretty-printing?for?gdb", ????????????????????"text":?"-enable-pretty-printing", ????????????????????"ignoreFailures":?false ????????????????} ????????????], ????????????"preLaunchTask":?"Compile"?//?調試會話開始前執行的任務,一般為編譯程序。與tasks.json的label相對應 ????????} ????] }
三、創建tasks.json
在.vscode文件中,新建tasks.json文件,編輯代碼
{ ????"version":?"2.0.0", ????"tasks":?[ ????????{ ????????????"label":?"Compile",?//?任務名稱,與launch.json的preLaunchTask相對應 ????????????"command":?"g++",?//?要使用的編譯器,C++用clang++;如果編譯失敗,改成gcc或g++試試,還有問題那就是你自己的代碼有錯誤 ????????????"args":?[ ????????????????"${file}", ????????????????"-o",?//?指定輸出文件名,不加該參數則默認輸出a.exe,Linux下默認a.out ????????????????"${fileDirname}/${fileBasenameNoExtension}.exe", ????????????????"-g",?//?生成和調試有關的信息 ????????????????"-Wall",?//?開啟額外警告 ????????????????"-static-libgcc",?//?靜態鏈接libgcc,一般都會加上 ????????????????"-std=c++11",?//?C++最新標準為c++17,或根據自己的需要進行修改 ????????????],?//?編譯命令參數 ????????????"type":?"process",?//?process是vsc把預定義變量和轉義解析后直接全部傳給command;shell相當于先打開shell再輸入命令,所以args還會經過shell再解析一遍 ????????????"group":?{ ????????????????"kind":?"build", ????????????????"isDefault":?true?//?不為true時ctrl?shift?B就要手動選擇了 ????????????}, ????????????"presentation":?{ ????????????????"echo":?true, ????????????????"reveal":?"always",?//?執行任務時是否跳轉到終端面板,可以為always,silent,never。具體參見VSC的文檔 ????????????????"focus":?false,?//?設為true后可以使執行task時焦點聚集在終端,但對編譯C/C++來說,設為true沒有意義 ????????????????"panel":?"shared"?//?不同的文件的編譯信息共享一個終端面板 ????????????}, ????????????//?"problemMatcher":"$gcc"?//?此選項可以捕捉編譯時終端里的報錯信息;本文用的是clang,開了可能會出現雙重報錯信息;只用cpptools可以考慮啟用 ????????} ????] }
四、此時點擊調試按鈕,可以看到出現可以進行調試的選項
相關文章教程推薦:vscode教程
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END
喜歡就支持一下吧
相關推薦