位元詩人 [Windows] 程式設計教學

本系列文章介紹 Windows 平台上的程式設計相關議題。

本文的出發點並不是單純介紹微軟官方的開發方式,而是從一般程式設計與系統開發的觀點來理解 Windows 的設計與工具鏈。部分內容也會與 Unix 系統進行比較,讓讀者能從不同角度理解 Windows 程式設計的環境與特色。

本系列的內容源於作者在 Windows 上重新建立開發環境的過程。為了讓開發流程更接近常見的開源軟體生態,文中會介紹一些常見的開發工具,例如 MSYS2、Cygwin、WSL、vcpkg 等。

透過這些工具,可以在 Windows 上建立較為完整的開發環境,同時也能讓程式設計者在不同作業系統之間切換時,保有相對一致的開發流程。

Windows 雖然是封閉原始碼的系統,但作為目前最普遍的桌面平台之一,程式設計者在實務上往往仍需要與其互動。因此,本系列也會整理與 Windows 平台相關的程式設計知識與工具。

[Windows] 程式設計教學:以 MinGW 和 MSYS2 建置 C 和 C++ 開發環境

MinGW + MSYS 是 GCC 在 Windows 上的移植品,而 MSYS2 則是新版本的 MinGW。對於習慣自由軟體的程式設計者來說,MSYS2 是值得考慮的 C 和 C++ 開發環境。 繼續閱讀

[Windows] 程式設計教學:發佈基於 MSYS2 的應用程式

當應用程式寫完後,會將該程式移到異地執行,這時候就牽涉到部署程式的議題。部署程式的方式會因平台而異,本文介紹在 Windows 上部署自 MSYS2 環境編譯出來的執行檔的方式。 繼續閱讀

在 Windows 上優化 Unix Toolchain 管理:建構單一真理來源 (SSOT)

Unix Toolchain 並非 Windows 的原生工具。許多移植至 Windows 的開源開發軟體,往往會自行綑綁獨立的 Unix 工具鏈。這種做法極易導致系統內出現大量重複的工具,並因版本差異引發行為不一致的非預期錯誤。 繼續閱讀

[Windows] 程式設計教學:使用 Golang 取代 Python 當成腳本語言 (Scripting Language)

雖然 Go 語言是編譯語言,但 Go 語言使用起來卻如同直譯語言般簡單,因此可用來當成另一個自動化日常事務的腳本語言。本文介紹以 Go 語言做為腳本語言的優缺點,並展示一個簡短的例子。 繼續閱讀

[Windows] 程式設計教學:用 vcpkg 安裝 C 或 C++ 函式庫

當時我把 vcpkg 當作「Windows 上的套件管理工具」,但後來回頭看,這樣的理解其實不太完整。 vcpkg 不只是套件管理器,而是 繼續閱讀

[Windows] 程式設計教學:在 Visual Studio 2019 中建立和執行 C 專案

Visual Studio 2019 在預設情境下沒有辦法直接建 C 專案,只能建 C++ 專案。不過 Visual C++ 仍然保有編譯 C 原始碼的功能,經過一些額外的步驟後,就可以讓專案支援 C 語言。本文以一個 Hello World 程式來展示這個過程。 繼續閱讀