[GCC] GCC for Windows (MinGW/DEV-C++)

  • MinGW
  • 儘管windows底下有一個優秀的程式開發工具Visual Studio,但我還是要介紹MinGW這套優秀的編譯器。除了他是免費之外,再者就是如果你有unix programming的經驗,應該會清楚的了解到GCC(或者Dev-C++)與Visual Stduio中的差異。MinGW的官方網站如下:

    http://www.mingw.org/

    很多人一進到官方網站後卻不知道要下載什麼來安裝,筆者就直接把連接連出來,你只需要下載下面的東西回到你的電腦裡,接著按照指示安裝即可。

    MinGW-5.1.4.exe

    MinGW的使用方式跟Linux底下的GCC是完全一樣的。詳細使用方法請參照官方網站。

    安裝完後你就可以在cmd底下編譯程式,但是你會發現你無法像在linux底下一樣使用gcc來編譯,反而是要打全名(c:\MinGw\bin\gcc),你可以到控制台->系統->進階->環境變數去修改Path的值,如下圖:

    去編輯Path的值,在最後面加上;c:\MinGw\bin 如下圖:

    這樣大致上就設定完成了。

    gcj:

    如果你有安裝gcj,且想不開想用gcj做為編譯java的主要工具,那我建議你要裝liblconv for windows,這樣你才能夠編譯java(就目前的版本情況是如此),下載位置如下:

    http://gnuwin32.sourceforge.net/packages/libiconv.htm

    安裝完當然還是要設定一下,編譯過程中記得把libiconv的路徑加進去,否則他還是會告訴你找不到檔案,編譯完後記得將libiconv2.dll放在你的執行檔案同個目錄下(或者直接塞到system32底下),不然你又不能執行程式。

    所以真的覺得使用gcj很麻煩,那就使用jdk或者eclipse吧!

  • Dev-C++
  • 如果你覺得安裝和使用MinGW對你而言有困難,那你可以使用圖形化介面的編譯器Dev-C++,我想有不少人用過這個編譯器,但是卻不知道他是基於GCC核心所開發出來的軟體。

    可以到下面的地方下載:

    http://wxdsgn.sourceforge.net/

    這裡我提供的已經不是原先版本的Dev-C++,而是wxDev-C++開發團隊所接手的新版本,而wxDev-C++就是多了wxWidgets的功能,是一個可以開發出跨平台的程式套件。

    不管是安裝Dev-C++或者是MinGW,我都建議你們設定一下系統環境變數,將path的地方增加c:\Dev-cpp\bin(如果這是你的Dev-C++安裝路徑)。

  • CodeBlocks
  • CodeBlocks是一個跨平台的開發套件,他主要還是以支援wxWidget為主,如果你有安裝wxDevCpp,那你可以不需要再安裝CodeBlocks,有不少人推薦使用CodeBlocks。

    官方下載位置如下(記得下載含mingw的版本):

    http://www.codeblocks.org/downloads/binaries

    安裝完一樣要設定環境變數的路徑。

    如果你是linux用戶,裝完CodeBlocks之後卻無法啟動,顯示找不到libcodeblockXXX時,你可以編輯/etc/ld.so.conf這個檔案,並加上/usr/local/lib這個路徑存檔後,執行ldconfig即可。

  • CodeLite
  • 另一套跟CodeBlock很像的軟體,只是你必須從MinGW, GDB一路裝上去,說穿了你還是得自行裝MinGW。官方下載如下:

    http://codelite.org/LiteEditor/Download

    官方頁面上有安裝步驟,如果你對CodeLite有興趣的話。

  • Cygwin
  • 除了上述的幾套工具之外,最正統的就是cygwin,他會幫你在windows模擬出一個linux環境,然後你就可以在這環境下安裝gcc,此方法是最完全的配套方案,出問題的狀況最少,但是需要更多的設定步驟。官方下載位置如下:

    http://www.cygwin.com/

    這部份你就自行研究吧!

  • MinGw for Linux
  • 如果你是Linux用戶,且又想在Linux底下使用MinGW編譯Win32的程式時你也可以安裝MinGW for linux來解決這個問題,以ubuntu為例:

    • sudo apt-get install mingw32

    安裝完後編譯程式的時候改用下面的指令(假設我們要編譯一個叫做Hello.c的程式):

    • i586-mingw32msvc-gcc -o Hello.exe Hello.c

    其實只是把gcc改成i586-mingw32msvc-gcc而已,如果嫌檔名長你也可以寫成makefile來處理,至於makefile的撰寫部份下次再說吧!

1 comment:

  1. Anonymous3:07 PM

    This is such a great resource that you are providing and you give it away for free. I love seeing blog that understand the value. Im glad to have found this post as its such an interesting one! I am always on the lookout for quality posts and articles so i suppose im lucky to have found this! I hope you will be adding more in the future...
    Bathtub Taps

    ReplyDelete

Orange - data analysis tool

Installation pip install orange3 Run orange python -m Orange.canvas