1. 程式人生 > >在Windows 10 中用 Bash on Windows(WSL) 給 VSCode 搭建 編譯除錯 C/C++ 環境

在Windows 10 中用 Bash on Windows(WSL) 給 VSCode 搭建 編譯除錯 C/C++ 環境

Windows 10 Creator Update 下的VSCode 支援 WSL *了!

Degbug!

*本文參考連結(基礎2):GitHub
*WSL是 Windows 10 下 的一項功能,全稱Window Subsystem for Linux

你要提前準備的內容(粗體重要

  • Windows 10 帶有 Creator Update(即創意者更新)
  • WSL(Windows Subsystem for Linux)(即 Bash on Windows)
  • VSCode 帶有 C/C++ 工具擴充套件(ms-vscode.cpptools)
  • 閱讀 一般的 VSCode 搭載 C/C++ 程式設計環境的教程(*nix或Win)
    (基礎1)
  • 閱讀 本文參考連結並複製+貼上(+修改)好 launch.json 檔案
    *步驟5依賴於步驟4

一. launch.json 的修改

原內容

"program": “/mnt/z/Bash/kitchensink/a.out",

修改

"program": 【要生成可執行檔案目錄在bash中的目錄】/${fileBasenameNoExtension}.out",

解釋:${fileBasenameNoExtension} 是說明讓VSCode獲取當前檔案不帶副檔名的檔名,另外”sourceFileMap” 和 “cwd” 的目錄內容也請 按實況修改

二. 寫一個 gcc.bat

方法是在你的可執行檔案目錄裡面新建一個新建文字文件.txt改為gcc.bat,右鍵編輯

bash -c "gcc -g 【原始碼目錄在bash中的目錄】%1 -o 【要生成可執行檔案目錄在bash中的目錄】%2"

解釋:這是為了在VSCode裡面通過cmd呼叫bash呼叫gcc,目前我只想到這個辦法。%1指下面task.json給bat輸入的引數(原始碼和輸出檔案),其實可以不在bat中寫目錄,可以讓task.json傳引數,可以自行修改。

三.改task.json

關於task.json是什麼,怎麼建立,可以在你要提前準備的內容步驟4中看到。

//這是task.json的全部內容
{
"version"
: "0.1.0", "tasks": [ { "taskName": "gcc", "command":"【gcc.bat在win下的位置,這裡用/或\\】/gcc.bat", "args": [ "${fileBasenameNoExtension}.c", "${fileBasenameNoExtension}.out" ], "problemMatcher": { "owner": "cpp", "fileLocation": ["relative", "${workspaceRoot}"], "pattern": { "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$", "file": 1, "line": 2, "column": 3, "severity": 4, "message": 5 } } } ] }

至此 VSCode 的連線 Bash 工作完成!

可以除錯了!

圖片

問題

· 通過這個生成的可執行檔名是什麼?

-[ 原始檔去掉.c然後加上.out(如hello.out)]

·【要生成可執行檔案目錄在bash中的目錄】是什麼?

-[看你想把xx.out放哪裡,一般和原始檔放一起就行了(如/mnt/z/Bash/kitchensink)注意c盤要寫/mnt/c,而且要區分大小寫!!!]

·【原始碼目錄在bash中的目錄】是什麼?

-[你的xx.c檔案的所在之處,比如我有一個helloworld程式在c:\Hello資料夾裡面,要寫為/mnt/c/Hello]

·【gcc.bat在win下的位置,這裡用/或\】是什麼?

-[建議和可執行檔案放一起或者另外找一個特定目錄防止誤刪]