建構C語言編輯環境(for windows)-MinGW (MSYS2) + Code::Blocks

 C語言是一種年代久遠的語言(但很不幸我從來沒有認真學過),印象中unix體系下是可以直接編譯的,但我已經很久沒有用,其實一直也都相安無事。

上學期開始帶學生學習Python(當然我也是邊教邊學),使用上我覺得對於初學者是友善的,環境的架構只需要一鍵安裝,編輯也有最基本的IDLE,但是!就是這個但是,當我在利用 高中生程式解題系統 練習程式時,就是有一基本(教學)題總是TLE(其實還有MLE)(如果是需要技巧型設計的題目也就算了,但是我一看他就是單純的教學題型,用python就是過不了 ><" )

一氣之下我想用C語言用相同的寫法去解題,看看是不是單純因為語言的效率關係(一般來說python受限於直譯式程式語言以及動態規劃記憶體方式都使python在效率及記憶體使用上都相對弱勢),所以就有了這篇記錄:在windows下建立C語言撰寫環境。

題外話: 用C寫就AC了

首先在我的印象中,windows下是沒有c語言編譯環境的,當然強者可以直接寫程式碼(其實就是文字片段),但沒有編譯就無法執行,也就代表無法測試,很弱的我當然沒辦法這樣直接送出答案,所以勢必得建構出環境來,在參考了一些網路資料後,考慮兩種方案:

  • Visual Studio Community

    看起來是相對簡單的方式,安裝好後就一併把編譯器(compiler)及編輯器(IDE)都裝好了,一條龍方式,單看有點像Python安裝,但是我就是.......不想被Microsoft綁架、想有更多選擇權? ......總之我就是對microsoft出品的沒有好感,沒有品牌情節的其實這方式比較簡單。

  • MinGW (MSYS2) + Code::Blocks

    換個方式就是自己選擇(安裝)編譯器(compiler)及編輯器(IDE)了,參考網路文章後編譯器我使用GCC系統(也就是MYS2),編輯器我選擇Code::Blocks,兩個都是free的,以下安裝紀錄:
MSYS2:

其實官方網站上就有安裝方式了,簡單紀錄一下:
  • 下載安裝檔並執行安裝
    基本上就是一直下一步,可能要注意的是路徑需要注意(害怕就用預設就好),安裝好後會預設開啟使用介面(MSYS2 MSYS)
  • 在MSYS2 MSYS中下指令 pacman -Syu
  • 在MSYS2 MSYS中下指令 pacman -Su
    MSYS2 MSYS在上個執行中會自動關閉,需要自己在手動開啟,安裝內容中我不確定MSYS2 MSYS及MSYS2 MinGW 64-bit差在哪裡,我是直接使用MSYS2 MSYS
  • 在MSYS2 MSYS中下指令 pacman -S mingw-w64-x86_64-toolchain(官網上寫的是:pacman -S --needed base-devel mingw-w64-x86_64-toolchain 我覺得是一樣的事情,但是那選單我完全看不懂,後來看網路上下是上面的指令)
    第一次執行時我發現裡面還要選擇(好吧!其實我都不知道前面的指令在幹嘛,純粹照著做),印象中是19種的樣子,我沒選擇結果C:\msys64\mingw64\bin下空空如也什麼都沒有,這樣使用IDE時會有問題,所以我後來選擇了第3個 (mingw-w64-x86_64-gcc)
  • 讓windows環境變數中的PATH增加 C:\msys64\mingw64\bin
    網路上說不加也沒關係,但是我沒加IDE就看不到,我後來還是乖乖地加了(C:\msys64是第一步安裝路徑,有換要改),測試方式可以在CMD下打指令:gcc -v 看可不可以正常呼叫。
Code::Blocks
  • 下載protable版本(也許安裝版本可以直接路徑抓到我不知道)
  • 設定好編譯器(compiler)路徑
    setting --> compiler --> Toolchain executables 下設定,預設是 C:\msys64\mingw64\bin
  • 開啟project撰寫程式
    project --> Console application (使用project我猜是方便管理)
  • 使用方式:(以下略,不熟,用到時再了解)
參考:
https://michaelchen.tech/c-programming/write-c-on-windows/
https://michaelchen.tech/windows-programming/mingw-msys/
https://www.msys2.org/
https://www.codeblocks.org/

留言

這個網誌中的熱門文章

製作USB的多系統重灌工具

Ubuntu下建立大量帳號

複製造字檔案