【問題】:
使用vscode配置c/c++環境時,提示無法構建失敗。
【解決方案】:
1. 當前結合網上找的資料已經檢查過,tasks.json和launch.json檔案,並無配置錯誤。
2. F5除錯時,終端輸出錯誤除錯資訊如下:
啟動除錯任務時,執行了2條命令。
1)cmd /c chcp 65001>nul (查了下好像是字元亂碼相關)
2)D:\Programs\mingw64\bin\gcc.exe -fdiagnostics-color=always -g F:\Data\code\vsc_template\main.c -o F:\Data\code\vsc_template\main.exe (真正的編譯指令碼)
在終端單獨執行2)的指令碼,可以在工作區正常生成 main.exe, 此時再按F5除錯,可以正常設定斷點並進行除錯任務。
由此斷定,launch.json檔案沒有問題,問題出在tasks.json中。因為tasks.json任務沒有生成 main.exe, 因此luanch.json 報錯,找不到main.exe檔案。
3. 核查tasks.json配置如下:
根據2中終端中列印的錯誤資訊,因為能正確生成編譯指令碼,所以可知3 "command" 和 4"args"正確執行,問題出在1"type" 和2"label"上。2"label"僅僅是一個字元標識,只要保證launch.json中和這個欄位保持一致即可。因此確認,問題出在1"type"上,cppbuild命令不對。
4. 編譯"type"欄位,vscode自動提示該欄位有3個可選值,如下圖:
將"type"值修改為 "shell",如下:
F5再次啟動除錯,終端除錯命令如下:
對比2中終端輸出資訊,此時只有編譯指令碼。此時可以正常啟動除錯資訊。
【總結】
1.vscode配置c/c++環境,無法除錯時,先檢查 tasks.json和launch.json檔案配置。
2.注意終端視窗輸出的指令資訊。
3.本文的問題是因為,tasks.json檔案中,啟動指令錯誤導致,將"type"欄位的值,從"cppbuild"修改為"shell", 可以正常啟動編譯除錯。