作為一個初心者,用很潮的純文字介面寫程式也是很正常的嘛 === 原標題:**在 Windows 10 中,建立純文字的 C++ 程式開發環境教學,以 MSYS2 為例** 作者:魏礼謙 (內壢高中資訊教師) ###### tags: `Windows` `MSYS2` ## 目錄 [TOC] ## 前言 ## 開發環境安裝流程 這篇教學文的目標是教你在 Windows 10 中,建立一個可以開發 C++ 程式的純文字環境。 按照安裝的順序,依序會使用到 MSYS2、pacman,以下依序介紹。 ### 一、MSYS2 #### 說明 - [什麼是 MSYS2? (官網介紹) (英文)](https://www.msys2.org/docs/what-is-msys2/) #### 安裝步驟 1. 到 [MSYS2 官網](https://www.msys2.org/)下載安裝的 exe 檔。 2. 安裝。 #### 推薦閱讀 - [在 Windows Terminal 使用 MSYS2 (官網介紹) (英文)](https://www.msys2.org/docs/terminals/#windows-terminal) - [Windows Terminal](https://www.google.com/search?q=Windows+Terminal) 是一個介面很漂亮的純文字視窗,提供比 Windows 原生 cmd 或 PowerShell 更好的圖形介面和可客製化的空間,把它和 MSYS2 結合的話,不僅開發程式方便,用起來心情也會很好呢。 ### 二、pacman #### 說明 - pacman 是一個程式安裝檔的管理工具,可以用它來 安裝、更新、解安裝 各式各樣的軟體。 - 接下來,要用 pacman 安裝開發 C++ 程式必備的編譯器 `g++` 和 除錯器 `gdb` #### 安裝步驟 1. 打開 MSYS2 的視窗,輸入 `pacman -Sy g++ gdb`,就會把 ==g++== 和 ==gdb== 安裝好。 2. 如果要更新 ==g++== 、 ==gdb== 和其他的軟體,輸入 `pacman -Syu`。 #### 推薦閱讀 - 如果要查詢 ==pacman== 的其他指令參數,如上面提到的 ==-Syu== ,你可以輸入 `man pacman` ,意思是打開 pacman 的 manual (操作手冊)。 - 或是 [查詢](https://www.google.com/search?q=man+pacman) 網頁版的 [手冊](https://archlinux.org/pacman/pacman.8.html)。 - ==pacman== 是一個用 C 語言寫的工具程式,它也是個開源程式,所以你可以在 [它的官方程式碼庫](https://gitlab.archlinux.org/pacman/pacman/-/tree/master/src/pacman) 上閱讀它的程式碼。 - ==pacman== 原本是來自 [Arch Linux](https://zh.wikipedia.org/wiki/Arch_Linux) 這個 Linux 發行版中主要的安裝包管理器。 ## 純文字開發環境簡要使用教學 - 以下示範皆以 ==prog.cpp== 代指你的 C++ 程式碼檔案。 ### I. 程式碼編輯 - 純文字環境下,用來編輯程式碼檔案的文字編輯器有很多,但最知名、也最多人使用的大約是 ==vim==、==Emacs== 和 ==nano==。 #### Vim - 使用方式 `vim prog.cpp` - 使用起來快速又直接,外加功能很多,甚至可以自己寫 Vim 的外掛來擴充功能。 - 對新手較不友善,初學者需要熟記常用的基本操作指令。 #### Emacs - 使用方式 `emacs prog.cpp` - 多年來唯一在功能上,能與 Vim 打對台的編輯器,同樣功能強大。 - 與 Vim 各有一票死忠的支持者。 #### nano - 使用方式 `nano prog.cpp` - 非常簡單易用的文字編輯器,但功能陽春,只能完成最基本的編輯。 - 長期來看,若要提高寫程式的效率,不建議用它來寫程式。 ### II. 編譯 - C++ 的編譯器有很多款,最知名的當屬 GCC 專案下,專門用來編譯 C++ 程式的 ==g++==。 - 一般編譯 `g++ prog.cpp` - 編譯,並包含除錯符號 `g++ -g prog.cpp` - 另一個也相當知名的 C++ 編譯器是 LLVM 專案中的 ==clang++==。 - ==clang++== 編譯器其中一個特色是,強調指令參數跟 ==g++== 通用,所以只要安裝好 ==clang++==,把上面的示範的 ==g++== 指令換成它就可以直接使用。 - 並且 ==clang++== 的錯誤訊息寫的比 ==g++== 更完整詳細,可能對程式除錯更有幫助。 ### III. 除錯 - C++ 的除錯器,首推依舊是 GCC 專案下,可用來除錯的各種語言寫成的程式的超強除錯器 ==gdb==。 - 使用除錯器前,記得要在編譯的時候,加上 ==-g== 把除錯符號加進程式執行檔裡。 - 基本的 ==gdb== 教學可以參考 [這篇文章](https://ithelp.ithome.com.tw/articles/10257294)。