位元詩人 Dev-C++ 仍然值得使用嗎?

Facebook Twitter LinkedIn LINE Skype EverNote GMail Yahoo Email

前言

本文說明 Dev-C++ 這個在大專院校廣為流傳的 C/C++ IDE,是否仍然值得使用,以及一些實際使用上的建議。

Dev-C++ 為什麼會受到注意

當時的時空背景大致如下:

  • Visual C++ 價格高昂
  • 當時的 MinGW 不夠友善,MSYS2 尚未出現
  • 沒有 WSL 這類環境,使用 GNU/Linux 的門檻偏高

多數人其實只需要一個簡單易用、不必操作命令列,就能撰寫 C 程式並順利繳交作業的免費 IDE。在這樣的需求下,Dev-C++ 幾乎就是當時的最佳解。

當前發展

Dev-C++ 目前主要可以分為三個分支:

  • Bloodshed Dev-C++:原始版本,已停止維護多年
  • Orwell Dev-C++:第一個分支,後續也停止維護
  • Embarcadero Dev-C++:第二個分支,穩定版本停在 2021 年

嚴格來說,Embarcadero Dev-C++ 是目前「相對最新」的版本。不過,由於舊官網的網域權重較高,搜尋結果往往仍會導向原始版本,導致不少人下載到過時的版本。

這裡並不是要替 Embarcadero 打廣告,但仍建議優先使用最新版本的 Dev-C++。關鍵原因在於其附帶的 C/C++ 編譯器版本——舊版本 IDE 所附的編譯器過於老舊,可能導致較新的語法特性無法使用,甚至無法順利編譯。

本文內容皆基於 Embarcadero Dev-C++ 的實際使用經驗撰寫,後文不再特別區分版本。

實際使用

選擇介面語言

中文介面偶爾會出現亂碼問題,建議使用英文。這是 Dev-C++ 長期存在的問題,不過不影響核心功能。

可用的語法特性

預設 C/C++ 編譯器為 TDM-GCC 9.2.0。 可用的 C 語言標準為 C17,更新的標準(C2x)支援不完整;C++ 則支援至 C++17。

以現在的標準來看並非最新,但對多數學習與基礎開發情境而言仍屬「夠用」。

若願意額外花時間設定,也可以替換為較新的 GCC / MinGW 編譯器,詳見後文。

單檔編輯

Dev-C++ 支援不建立專案,直接編輯單一 C/C++ 原始碼,並透過 F9 編譯、F10 執行,全程不需接觸命令列。

這對初學者相當友善。許多作業僅需單一檔案即可完成,在這種情境下,專案機制反而顯得多餘。

不過,仍建議將原始碼備份至雲端,例如使用 GitHub 或 GitLab 建立私有 repository。當本機發生問題時,仍可快速還原資料。

專案管理

在學習 C 語言初期,建議使用「Console Application」,並將預設語言設定為 C。此階段的重點在語法與邏輯,而非圖形介面開發。

建立專案時,需要先手動建立目錄,再進入該目錄後建立專案。這個流程不夠直觀,在使用體驗(UX)上略顯扣分。

Dev-C++ 會在背景自動產生 Makefile,但無法直接於 IDE 中編輯。這樣的設計是為了避免使用者誤改 Makefile 導致專案無法編譯,因此刻意將其隱藏。

進階使用

客製 Makefile

雖然 Dev-C++ 背後使用 Make,但並不建議自行為其撰寫 Makefile,通常應交由 IDE 自動生成。

原因在於 Dev-C++ 所產生的 Makefile 幾乎不具可攜性,離開原本的電腦環境後通常無法使用。

以下為節錄範例:

CPP      = g++.exe
CC       = gcc.exe
WINDRES  = windres.exe
OBJ      = main.o
LINKOBJ  = main.o
LIBS     = -L"C:/Program Files (x86)/Embarcadero/Dev-Cpp/TDM-GCC-64/lib" -L"C:/Program Files (x86)/Embarcadero/Dev-Cpp/TDM-GCC-64/x86_64-w64-mingw32/lib" -static-libgcc
INCS     = -I"C:/Program Files (x86)/Embarcadero/Dev-Cpp/TDM-GCC-64/include" -I"C:/Program Files (x86)/Embarcadero/Dev-Cpp/TDM-GCC-64/x86_64-w64-mingw32/include" -I"C:/Program Files (x86)/Embarcadero/Dev-Cpp/TDM-GCC-64/lib/gcc/x86_64-w64-mingw32/9.2.0/include"
CXXINCS  = -I"C:/Program Files (x86)/Embarcadero/Dev-Cpp/TDM-GCC-64/include" -I"C:/Program Files (x86)/Embarcadero/Dev-Cpp/TDM-GCC-64/x86_64-w64-mingw32/include" -I"C:/Program Files (x86)/Embarcadero/Dev-Cpp/TDM-GCC-64/lib/gcc/x86_64-w64-mingw32/9.2.0/include" -I"C:/Program Files (x86)/Embarcadero/Dev-Cpp/TDM-GCC-64/lib/gcc/x86_64-w64-mingw32/9.2.0/include/c++"
BIN      = DemoProject.exe
CXXFLAGS = $(CXXINCS) 
CFLAGS   = $(INCS) 
DEL      = C:\Program Files (x86)\Embarcadero\Dev-Cpp\devcpp.exe INTERNAL_DEL

可以看到多數路徑與參數皆為硬編碼(hard-coded),一般使用者也難以自行重建。這類 Makefile 僅適用於當前環境,幾乎無法移植至其他系統。

在雲端儲存專案

Dev-C++ 的專案檔本質上是文字檔。理論上,透過撰寫 .gitignore 排除目的檔與執行檔等 artifact,確實可以將專案上傳至 GitHub、GitLab 等平台。

然而,由於專案檔與 Makefile 本身缺乏可攜性,即使上傳至雲端,可重用性仍然有限,本質上更接近將版本控制工具當作雲端硬碟使用。

更換編譯器版本

Dev-C++ 支援更換編譯器,但僅限於 GCC / MinGW 系列。以下以 MSYS2 提供的 GCC 為例。

透過 Chocolatey 安裝 MSYS2:

> choco install msys2

更新系統:

$ pacman -Syu

安裝 UCRT 版本 GCC:

$ pacman -S mingw-w64-ucrt-x86_64-toolchain

完成後,實際撰寫程式仍可在 Dev-C++ 內進行,只需在:

「Tools」→「Compiler Options」→「Directories」

中調整以下路徑(需保持一致):

  • Binaries
  • Libraries
  • C/C++ Includes

以下為範例設定:

  • Binaries:C:\tools\msys64\ucrt64\bin
  • Libraries:C:\tools\msys64\ucrt64\lib
  • C/C++ Includes:
    • C:\tools\msys64\ucrt64\include
    • C:\tools\msys64\ucrt64\lib\gcc\x86_64-w64-mingw32\15.2.0\include

需注意第二個 Include 路徑與 GCC 版本綁定,版本更新後需自行調整,不建議直接照抄。

設置結果可參考下圖:

在 Dev-C++ 設置 C/C++ 編譯器

程式碼自動排版

可透過 AStyle 進行程式碼排版,並依個人偏好調整格式風格。此部分屬於開發習慣問題,本文不再展開。

結語

對於程式設計初學者而言,Dev-C++ 仍是一套簡單、易上手的免費 IDE。

但需理解,它並非 Embarcadero 的核心產品,因此未來大幅更新的可能性不高,更可能維持在「穩定可用但不持續進化」的狀態。

補充一點:Embarcadero 的核心產品其實是 Pascal / Delphi。雖然 Delphi 已非主流,但在企業內部工具或傳統 CRUD 應用上仍有其便利性。不過,整體而言,不建議將 Delphi 作為入門首選。

關於作者

位元詩人 (ByteBard) 是資訊領域碩士,喜歡用開源技術來解決各式各樣的問題。這類技術跨平台、重用性高、技術生命長。

除了開源技術以外,位元詩人喜歡日本料理和黑咖啡,會一些日文,有時會自助旅行。