前言

前陣子想用 C++ 寫個題目,突然發現編譯後雖然執行了,但在終端機怎麼輸入都沒反應,檢查 launch.jsontasks.json 也都沒動過。後來在這篇問答裡看到可能是某次更新後 VSCode 對 gcc 的最低版本要求提高了。

升級 gcc 版本

使用 gcc -v 指令可以查看版本,結果發現我裝的 MinGW 版本只有 6.3.0 (目前最新版本為 12.2.0)。先把舊版的 gcc 刪除(記得把系統環境變數的 path 也刪除),然後下載最新版的 WinLibs (UCRT runtime),解壓縮到方便存取的位置,再將 mingw64/bin/ 的絕對位置寫到環境變數的 path,最後修改 launch.json 的 gdb 位置就完成了。

分享一下自己的配置:

launch.json
{ "version": "0.2.0", "configurations": [ { "name": "(gdb) Launch", "type": "cppdbg", "request": "launch", "program": "${workspaceRoot}\\temp.exe", "args": [], "stopAtEntry": false, "cwd": "${workspaceRoot}", "environment": [], "externalConsole": false, "MIMode": "gdb", "miDebuggerPath": "C:\\mingw64\\bin\\gdb.exe", "setupCommands": [ { "description": "啟用 gdb 的美化顯示", "text": "-enable-pretty-printing", "ignoreFailures": true } ], "preLaunchTask": "build" } ] }
task.json
{ "version": "2.0.0", "tasks": [ { "label": "build", "type": "shell", "command": "g++", "args": [ "-g", "${file}", "-o", "temp.exe" ], "group": { "kind": "build", "isDefault": true } } ] }