vscode 配置c/c++環境,無法生成 *.exe檔案

TheShore發表於2024-04-25

【問題】:

使用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", 可以正常啟動編譯除錯。

相關文章