---
# System prepended metadata

title: 在 VSCode 上建立簡易 C/C++ 開發環境 (2021/03)

---

# 在 VSCode 上建立簡易 C/C++ 開發環境 (2021/03)
- 本文件是懶人包，更多複雜的設定請參閱[VSCode 官網](https://code.visualstudio.com/)
- 助教也是入門新手，有任何錯誤或建議歡迎指教：）

## 安裝 Visual Studio Code
到 [VSCode 官網](https://code.visualstudio.com/)下載並安裝，[說明文件](https://code.visualstudio.com/docs)非常完整

## 視窗配置介紹
除了**上方是功能列**以及**中間是程式編輯區**以外，左邊還有五個小按鈕，由上而下分別是：

- 工作區小按鈕
workspace 的目錄結構會在這邊顯示。
關於C/C++專案架構，可以參考[這篇](https://michaelchen.tech/applied-c-programming/c-project/)，網路上也有很多資源
- 搜尋小按鈕
這裡提供在檔案中搜尋的功能。
- 版本控制小按鈕
內建了 git 功能，下面會說明。
- 偵錯執行
debug 與執行，下面會說明。
- 外掛程式小按鈕
在這裡可以安裝各式各樣的擴充功能，發揮 VSCode 的自由度。
可以先查詢 chinese 安裝繁中語言包。

## 基本設定
- 最重要的技巧：按下```F1```可以在上方開啟 shell command，任何功能都可以在這邊找到或導向
- 幾乎你想的到的功能都可以在擴充功能找到
- 先打開工作區（使用遠端或 WSL 請先連上）後到擴充功能安裝 Microsoft 提供的 C/C++
- 如果想要按```F5```使用 GDB 除錯的話，需要配置文件。這個步驟非常複雜，可以參考[這篇](https://zhuanlan.zhihu.com/p/147366852)和[這篇](https://zhuanlan.zhihu.com/p/87864677)，不想安裝的話也可以打開終端機直接用指令編譯執行
- GNU 工具的使用方法一言難盡，可以參考[這個部落格](https://michaelchen.tech/)，網路上也有很多資源

## Windows 使用者專區
由於 GNU 系列對 Windows 的支援有限，Windows 使用者在本機端開發的話，需進行一些額外的步驟。使用學校網路的人可以考慮直接遠端到伺服器上開發（見下面）

### 安裝 WSL (Windows Subsystem for Linux)
1. 去設定→應用程式→應用程式與功能，點選右邊的程式與功能→開啟或關閉 Windows 功能，打開「Windows 子系統 Linux 版」和「虛擬機器平台」，然後重新開機
2. 到[這邊](https://docs.microsoft.com/en-us/windows/wsl/install-win10)第四步驟下載 WSL 更新套件
3. 輸入指令```wsl --set-default-version 2```將 WSL 預設版本設定為2
4. 打開 Microsoft store 搜尋 Linux 可以看到很多 Linux，選一個喜歡的點選安裝（不知道選什麼就 Ubuntu）
5. 去開始功能表打開剛剛裝的 Linux，照指示設定使用者名稱和密碼，等它第一次開機安裝幾分鐘
6. 輸入指令```sudo apt update``` 升級套件
7. 輸入指令```sudo apt install build-essential``` 安裝 GNU 開發工具
8. 打開 VSCode，在擴充功能安裝 Remote-WSL，就可以按左下角的小圖示選 Open Folder in WSL，開啟在 Linux 下的工作區了
9. 在 Linux 中，```/home/${username}``` 是你的家目錄，類似 Windows 中的 ```C:/Users/{username}```，可以以這邊為出發點建立專案資料夾


### 安裝 GNU 開發工具替代品
不想安裝 WSL 的話可以安裝在 Windows 下可以運作的類 GNU 工具箱。只有 Cygwin 提供 POSIX API，在作業會用到，很多教學會說裝 MinGW，雖然安裝比較簡單但本次作業不能用。
不過我沒裝過 Cygwin，要裝的人得自己摸索。

## 使用 SSH 連線到伺服器上遠端開發
使用學校網路的同學可以考慮直接連上作業伺服器開發。
1. 必須先連接到中山 VPN
2. 參考[這篇](https://blog.gtwang.org/linux/linux-ssh-public-key-authentication/)產生 SSH 金鑰放到作業伺服器端，網路上也有很多教學（此步驟可跳過，但開發過程會常常需要輸入密碼）
3. 在擴充功能安裝 Remote-SSH，安裝完成後會看到左下角有小小的遠端圖示，點擊（或在 shell command 中）開啟功能。
4. 接著選擇 Connect Current Window to Host 連接，第一次需 Add SSH Host，輸入指令：```ssh ${account}@${server-address} -A```
5. 設定儲存完畢之後再點一次，選擇伺服器 OS 為 Linux 後輸入密碼，即可成功連結，如要中斷連結一樣可以從 SSH 小按鈕中選擇。
6. 成功以後即可在作業伺服器上直接開發

**注意！！** 學校經常斷電，還是建議將東西備份下來或 push 上 git remote repo

## 使用 git 進行原始碼版本控制與備份
如果有時間可以學習使用 git 進行版控或備份，git 很複雜但網路上教學資源很多，我推薦[這個](https://backlog.com/git-tutorial/tw/)，另外VSCode 有內建對 Github 的支援，關於 Github 的操作網路上也很多教學

- 輸入指令```git config --global user.name ${username}```和```git config --global user.email ${useremail}```進行使用者名稱的全域設定，名字和 email 用你 Github 的帳號設定就可以了，其實不會影響
- 登入 Github 帳戶，建立一個 Repository 並取名
- 先不要產生任何檔案，包括 README、.gitignore、license，不然會發生不同步問題，非常麻煩
- 在 workspace 建立專案資料夾後使用 VSCode 開啟
- 點選左邊的版本控制小按鈕，點選 Create New Repository
- 點選右上三個點打開更多控制，Pull, Push→Push To...
- 照著他的流程登入 Github，選取你剛剛建立的 Repository 就可以傳上去了

Git 的設定非常複雜，中間可能會出現很多問題，可能要自己摸索，此步驟跳過也沒有關係

## 未整理
[修改 VSCode 預設的程式碼高亮樣式](https://blog.poychang.net/edit-default-dark-theme-for-visual-studio-code/)
[在 VSCode 上自定義 C++ 的 coding style](https://zamhuang.medium.com/vscode-%E5%A6%82%E4%BD%95%E5%9C%A8-vscode-%E4%B8%8A%E8%87%AA%E5%AE%9A%E7%BE%A9-c-%E7%9A%84-coding-style-c8eb199c57ce)
[簡單學 makefile：makefile 介紹與範例程式](https://mropengate.blogspot.com/2018/01/makefile.html)
makefile不是很重要，可以去網路上找一個來用沒關係
