各位下午好,不論男女,不論天生或後天變性,不論無性、雄性激素、機器人、黑莓、書呆子、書呆子、智慧褲子、兔子、兔子燉菜、fork 炸彈、猴子衍生物等等等等……
本文將討論一個被稱為
Dev-C++ 的 IDE(特指 Bloodshed Dev-C++),它出人意料地被廣泛使用。更具體地說,我將討論為何我們試圖勸阻人們使用 Dev-C++,以及如果你是 Dev-C++ 使用者,
你可以怎麼做。本文不適用於 Orwell Dev-C++ 或任何其他 Dev-C++ 的分支(Orwell Dev-C++ 將在下文討論,作為一個可行的替代方案)。
為何我們棄用 Dev-C++
一切都歸結為一個原因
官方 Dev-C++ 自 2005 年以來就沒有更新過,而且很可能永遠不會更新,因為
首席開發者在 2006 年表示,由於個人原因,他將不再繼續開發 Dev-C++。
因此,Dev-C++ 的陳舊性直接導致了 3 個主要問題。
- 附帶的 MinGW 已過時。
- 許多已知錯誤可能永遠無法修復。
- 該 IDE 缺乏更現代 IDE 的功能。
我將按順序逐一介紹。
附帶的 MinGW 已過時。
"MinGW" 是一個非正式的縮寫,代表“
Minimalist
GNU for
Windows”(適用於 Windows 的極簡 GNU)。它包含一套在許多 *nix 系統上常見的工具,包括 Dev-C++ 使用的 g++ 編譯器和 gdb 偵錯程式。
Dev-C++ 在計算機時代(Computer Centuries)沒有更新的問題在於,捆綁的 MinGW 已經有好幾年了,因此該編譯器在新的系統上執行效果遠不如最新的 MinGW g++ 副本。最新版本的 Dev-C++ 附帶 MinGW 版本 3.4.2,然而,在本文最後更新(2013 年 11 月 8 日)時,MinGW 的 g++ 版本已是 4.8.1。
最後,不僅老舊編譯器的程式碼生成可能更差,而且 Dev-C++ 附帶的編譯器是在 C++11 標準開始流行之前釋出的。許多有價值的 C++11 特性(如 auto、decltype、新的 for 迴圈語法、lambda 表示式、正則表示式和多執行緒)完全不受支援。
許多已知錯誤可能永遠無法修復。
最新版本的 Dev-C++(4.9.9.2,順便說一句,這是一個測試版)根據 Sourceforge 的 bug 跟蹤器(
連結),有超過 350 個未解決的錯誤,可能還有更多未計入的。
此外,由於 dev-packs 系統不再更新,該功能本身也已損壞,許多 pack 要麼過時,要麼已不存在。
由於首席開發者已退出,並且自那時起再無更新,這些錯誤很可能永遠不會得到修復。
該 IDE 缺乏許多更現代 IDE 的功能。
Dev-C++ 的除錯工具……也已經過時。偵錯程式是任何程式設計師在任何級別都必需的工具,關於 Dev-C++ 除錯介面混亂的抱怨並不少見。
此外,程式碼補全和檔案解析器也落後於時代。隨著 C++11 標準的釋出,大多數功能齊全的 IDE 都已添加了對 C++11 功能的支援。而 Dev-C++ 很可能不會改變,這使得它比現在更加不適合 C++ 程式設計。
Dev-C++ 使用者可以怎麼做
切換到 Orwell Dev-C++
如果您真的很喜歡 Dev-C++ 或被要求使用它,這是一個推薦的選項。它是原始 Dev-C++ 的一個分支,支援 C++11,並且更新更及時。它提供 32 位平臺和 64 位平臺兩種現代編譯器的選擇。
您可以在這裡下載 Orwell Dev-C++ 和其中一種編譯器:
http://sourceforge.net/projects/orwelldevcpp/files/Setup%20Releases/
完全切換 IDE
市面上還有其他 IDE,其中一些質量非常出色。雖然切換 IDE 有一個學習曲線,但存在一些值得稱讚的 Dev-C++ 的替代品。此處列出的所有 IDE 均可在 Windows 上執行,但並非所有 IDE 都附帶編譯器。
好的免費 IDE 列表包括但不限於
選擇極簡主義
這並不是一個我非常推薦大多數人的選項,但是使用一個極簡文字編輯器配合 makefile 和終端是我有時喜歡的開發選項,而且我相信還有其他人也會喜歡。
可能的輕量級編輯器包括但不限於
更新 Dev-C++
考慮到您在使用 IDE 本身時可能遇到的問題,我不推薦此選項,但如果您非常不願意切換到 Orwell Dev-C++,那麼至少可以做的是更新附帶的 MinGW,使其更適合使用。
很遺憾,我無法提供具體的操作方法,因為我自己甚至無法安裝 Dev-C++。但是,您可能需要搜尋一些與 MinGW 相關的檔案,刪除它們,然後將新的 MinGW 安裝到相應位置。
不過,執行此操作時要小心,因為同時存在兩個版本的 MinGW 可能會導致連結器錯誤(“未定義引用 __cpu_features_init”)。
總而言之……
雖然原始的 Dev-C++ 可能易於使用,但這並不意味著您應該繼續使用它。引用 Moschops 在
這裡 的話
將我的腳釘在地板上比用我自己的肌肉來保持平衡更容易,但你沒看到我這樣做 :)
-Albatross
編輯 1:添加了一些有用的超連結。
編輯 2:修復了專案符號點。
編輯 3:在編碼更新刪除了加號後,將加號放回了文章中。還更新了 wxDev-C++ 的下載連結。
編輯 4:添加了 QT Creator 和 Notepad++。感謝
Danellos 和
immutable 的建議!
編輯 5:我不得不最後加上
Moschops 的一句名言。:)
編輯 6:修復了一個小的格式問題,添加了一些連結,並進行了一些其他小改動。
編輯 7:更新了 Eclipse CDT 連結以反映新版本,並對一些措辭進行了修改。
編輯 8:承認 Orwell Dev-C++ 是一個非常有價值的替代方案。
編輯 9:更新了 Sourceforge bug 跟蹤器連結,並進行了一些小的措辭更改。
編輯 10:更新了一些連結,強調了本文是指 Bloodshed Dev-C++,並刪除了切換到 wxDev-C++ 的建議,因為其開發已經停滯了一段時間。
編輯 11:刪除了關於 Code::Blocks 已過時的說明,因為在 2013-12-27 有一個新版本釋出。