前言
在 Windows 下寫 C++ 程式,主要有以下三種方案:
- Visual C++ (MSVC)
- MinGW + MSYS
- Cygwin
這三種方案各有優缺點,本文將逐一說明。
Visual C++ 系統
編譯器
微軟對 C++ 的態度還算積極,Visual C++ 有跟上 (一部分的) C++14、C++17、C++20 標準 (詳見這裡)。所以 Visual C++ 可以用來學習 C++。
編輯器
早期 Visual C++ 是獨立的軟體,近幾年來則和其他的語言整合進 Visual Studio 裡面,現在的 Visual Studio 採用不同的專案來區隔不同語言和形式的程式。
由於早期微軟提供的 Visual Studio Express 版的功能相對受限,有一陣子 Dev-C++ 在台灣的大專院校中大行其道,但近年的 Visual Studio Community 版功能已經相當完整;相較起來,Dev-C++ 久未更新,現在應該不用再刻意使用 Dev-C++ 了 (詳見這裡)。
套件管理
原本 Windows 上缺乏良好的 C 或 C++ 第三方函式庫 (或套件) 管理的程式,近年來出現一些套件管理程式,像是 Conan 或 vcpkg 等,這個問題有改善一些。雖然目前的 vcpkg
不能自訂編譯參數,靈活性相對不足,一般情境下也夠用了。
GCC 系統
編譯器
MinGW 是移植自 GCC 這套在 GNU/Linux 等類 Unix 系統上知名的編譯器,但類 Unix 上的函式庫專案在 Windows 上會水土不服,所以加入 MSYS 這個小型 POSIX 模擬環境,用來安裝一些函式庫。
原本的 MinGW + MSYS 不太親民,後來出現 MSYS2,該專案除了編譯器外,也引入一些開發工具和套件管理軟體等,建置環境的過程變得更簡單。如果讀者想安裝 MSYS2,可看這裡。
編輯器
MinGW 沒有自帶的 IDE,讀者可自行搭配其他 IDE,常見的選項有 Code::Blocks、KDevelop、CLion (商業軟體) 等。對於 MinGW 來說,建置 C 和 C++ 開發環境是通用的。筆者在這裡撰寫 MinGW 搭配 Code::Blocks 的文章,對於 C 和 C++ 皆適用,此處不再重覆。
套件管理
原本的 MinGW 沒有套件管理的部分,而 MSYS2 將 Arch Linux 的 Pacman 引入,安裝套件就容易得多。
Cygwin 環境
Cygwin 則是一個微型的 POSIX 環境,主要的優點是可以在該環境內用類 Unix 系統上常見的終端機工具,也包括 GCC (詳見這裡)。
但在 Cygwin 下編譯出來的程式,需額外帶一個 Cygwin 提供的動態函式庫 (DLL),也有軟體授權上的議題。除了要使用 POSIX 相關工具或 API 外,不建議用 Cygwin 來學習 C++。
安裝 Visual Studio 2022 並加入 C++ 的支援
到 Visual Studio 官網下載 Visual Studio Community 2022 的安裝程式即可。
如果不需要 IDE,只要編譯器和開發工具,可以到這個頁面下載 Build Tools for Visual Studio 2022。在持續整合等沒有 GUI 的環境,都是用這種工具提供的 Visual C++ 來編譯 C++ 程式碼。
在安裝程式中,記得要選「使用 C++ 的桌面開發」工作負載。參考以下截圖:
除了標準的工具外,筆者還選了 Clang。這是另一個知名的 C++ 編譯器,筆者只是抱著試用一下的心態去選。除了這個工作負載外,還可以視需求安裝其他的工作負載。這部分由讀者自行選擇。
用 Visual Studio 2022 建立 C++ 專案
在 Visual Studio 的起始畫面選擇「建立新的專案」:
在專案類型選擇「主控台應用程式」:
設置專案名稱:
進入 Visual Studio 的編輯器:
在編輯器內加入以下內容:
#include <iostream>
int main(void)
{
std::cout << "Hello World" << std::endl;
return 0;
}
現在的重點在熟悉開發工具,暫不說明語法。