Contents ...
udn網路城邦
做得很不錯的 IDE ── Code::Blocks
2025/09/09 01:06
瀏覽375
迴響0
推薦6
引用0

Lāu-Khok-Khok 的筆者很習慣使用 Text-Based Makefile 與 Command,除了 DOS 時代的 Turbo C/C++ 與 Borland C++、以及 Solaris Visual Workshop 之外,筆者幾乎不使用 IDE;然而,在去年的上半年 (2024 年),筆者一時心血來潮,想說來跟上潮流找幾個受歡迎的 IDE 來試用看看,於是就抓了 Eclipse、Code::Blocks、以及 CodeLite 來安裝試用;首先,Eclipse 的龐大身軀與超多功能,反而把筆者給嚇到與搞糊塗,於是轉往試用輕量級的 Code::Blocks 與 CodeLite,當時就覺得做得還不錯,原本想做個分享,但後來有雜務要忙,這事就忘掉了!

最近幾個月,因為筆者得和兄弟姊妹輪流回老家照顧 88 歲的老母親,並在抽空整理自己以往的一些書籍、筆記、手稿、以及文件時,找到了 30 多年前在圖書館所拷貝的 JOOP 文章 (Journal of Object-Oriented Programming),such as < What is object-oriented design? > by Wayne Haythorn,< Dynamic and Multiple Classification > by James J. Odell,... etc. (這些文章有很不錯的洞見,有過大型軟體的研發經驗,回頭再閱讀這些文章是更有感覺;筆者在做學生的年輕時期閱讀到這些文章,基於閱歷、經驗、以及知識的不足,其實是沒有完全看懂,所以當時無法看出其中的洞見,而且瀏覽一遍就忘掉了,哈哈哈!), 這才讓筆者又想起 Code::Blocks 與 CodeLite ...

BTW, Code::Blocks 與 CodeLite 的 GUI 都是使用 wxWidget set。


筆者今天先拿 2008 年本人所著作的 C Programs 來做扼要分享。

  • 首先,請先安裝 MSYS2 與 GNU Toolchain (筆者是 Unix guy,所以沒有使用過 MS Visual C++,如果想使用 Visual C++ Compiler 搭配 Code::Blocks,就請 Windows guy 自行摸索,只不過 Visual C++ 已經是 IDE,Windows guy 想試用 Code::Blocks 的意願應該不太高),並確認 GNU Toolchain 一定得安裝 mingw64 的版本,因為 MSYS2 GNU Toolchain 有兩種版本:POSIX-style and Windows-style,而 mingw64 是 Windows-style 的版本。

  • 下載並安裝 Code::Blocks。

  • 在 Code::Blocks 的設定上,將 Toolchain executables、Compiler、以及 Debugger 指向 /msys64/mingw64/bin;

  • 向 Copilot 或 Gemini 詢問: How can we set up a project to build multiple targets?



接下來,筆者扼要分享心得如下 (功能很多,有不少其它功能還沒嘗試過):

  1. Code::Blocks Debugger 當中的 "Run to Cursor" 蠻好用的;顧名思義,就是把 Cursor 擺在某一定點,該定點就形同是下一個 breakpoint;

  2. Step by Step、Step Into、Step Out 等,透過 IDE 來做是更清楚與方便;

  3. 有 Watches 視窗,當然是比 Text-Based gdb 好用多了;

  4. 把某段程式碼搬到某處 (:#,#m#)、拷貝某段程式到特定處 (:#,#co#)、一口氣把某段程式刪掉 (:#,#d)、搜尋並置換某特定字串、yank and then put (#yy and then p;實際上就是 vim-style copy & paste) 等等, vim 這種下指令的編輯方式還是比較有效率與好用;當然,IDE 的 Editor 也有它的優點;

  5. 沒想到竟然有一個 Pulldown Menu 是給 Fortran 專用;原本以為 Fortran 已經陣亡,筆者據此特地查了一下,發現 UK Archer2 supercomputer 的程式碼,超過八成是以 Fortran 寫的,而且 Fortran 還持續地在擴展語法,有 Fortran 2003, 2008, 以及 Fortran 90+; It has ongoing syntax evolution. 在此順道一提的是,EDA Tool  Dracula 也是以 Fortran 寫的 (創始版本確定是以 Fortran 寫的,後續版本有沒以其它程式語言改寫就不得而知),因為開創者之一正是筆者任職 EDA Sector 時、公司幕後的創投天使與董事之一,但他已經在 2023 年過世;至於產品為何叫做 Dracula?筆者曾經在公司與會時聽他講過,他說當初他們創業團隊的成員幾乎都是晝伏夜出,生活習性就像是吸血鬼一樣(吸血鬼是怕曬到太陽,而這群創業工程師是半夜時分寫程式的效率最好,大概是白天會被太多誘惑給吸過去吧?),所以產品就索性叫做 Dracula。


好了,最後讓大家看一下 Screen Snapshots:

< A C Program with a UMR Problem >  (Un-initialized Memory Read)





 

< Fixing the UMR Problem with Initialization >





有誰推薦more