在Windows 10 中用 Bash on Windows(WSL) 給 VSCode 搭建 編譯除錯 C/C++ 環境
阿新 • • 發佈:2018-12-22
Windows 10 Creator Update 下的VSCode 支援 WSL *了!
*本文參考連結(基礎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)
- 閱讀 本文參考連結並複製+貼上(+修改)好 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下的位置,這裡用/或\】是什麼?
-[建議和可執行檔案放一起或者另外找一個特定目錄防止誤刪]