首先,下載Mingw TDM 4.3.0版本
http://www.tdragon.net/recentgcc/
有兩種選擇
GCC 4.3.0-tdm-2 (Default SJLJ exceptions) 和 GCC 4.3.0-tdm-2 With DW2 Exceptions
可以根據SJLJ or DW2 (Dwarf-2) 異常模型來選擇需要下載的版本,通常情況下win32平臺下選擇SJLJ(set jump long jump)模型
然后還需要去Mingw官網下載
binutils
http://downloads.sourceforge.net/mingw/binutils-2.18.50-20080109-2.tar.gz
mingw-runtime (mingw-runtime-3.14.tar.gz, 494KB)
http://downloads.sourceforge.net/mingw/mingw-runtime-3.14.tar.gz
w32api (w32api-3.11.tar.gz, 1.55MB)
http://downloads.sourceforge.net/mingw/w32api-3.11.tar.gz
也可以選擇安裝以下組件
mingw-utils
http://downloads.sourceforge.net/mingw/mingw-utils-0.3.tar.gz
mingw32-make(可以選擇最新的mingw32-make-3.81-20080326-2)
http://downloads.sourceforge.net/mingw/mingw32-make-3.81-2.tar.gz
gdb(可以選擇最新的6.8試驗版)
http://downloads.sourceforge.net/mingw/gdb-6.6.tar.bz2
把這些東西都下載下來,然后解壓到不同的目錄,每個目錄里面大概都會有bin,include,lib,man這樣的目錄,要做的就是合并它們,也就是拷貝到同一個目錄里面,注意可能有些文件會重復,一般來說GCC 4.3.0 TDM包里面的文件比較重要,不要用其他的包里面的文件覆蓋了它
然后就可以得到一個完整包含gcc,g++,binutils,gdb,make等的目錄了,此時,在windows環境變量中的path變量里面添加該目錄的bin子目錄,就可以在cmd窗口中調用gcc和g++進行編譯了。如果你不想污染了環境變量,也可以寫個bat:(假設你的mingw目錄是C:\mingw\bin)
set path=C:\mingw\bin;%path%"
現在還沒有結束,需要進行兩個地方的設置
1 make
mingw官方提供的make工具,名稱不是簡單的make,而是mingw32-make.exe,把它改名成make.exe或者復制一份為make.exe都可以
2 gcc: CreateProcess: No such file or Directory 錯誤
這個問題在google里面很多人發問,但是沒有一個完整的解答,下面給出一個完整的解答
產生這個錯誤有兩個原因:
第一是gcc無法找到安裝目錄里面的libexec目錄里面的工具,通常這些工具包括cc1.exe,cc1plus.exe,collect2.exe,它們通常存放在:
安裝目錄\libexec\gcc\mingw32\4.3.0
第二是gcc無法找到mingw目錄里面binutils的工具,它們通常存放在
安裝目錄\mingw32\bin
這兩個目錄的名字并不完全固定,根據不同組織編譯的gcc各有不同,比如mingw官方編譯的gcc4.3.0 alpha,上述目錄就是
安裝目錄\gcc\i386-pc-mingw32\4.3.0
而官方提供的binutils包里面是
安裝目錄\i686-pc-mingw32\bin
只要這兩個地方沒有設置好,就可能導致CreateProcess錯誤,那么,有沒有什么好辦法能夠確定這里應該怎樣命名呢?辦法是用16進制編輯器打開gcc.exe,搜索GCC_EXEC_PREFIX,當搜索到該字符串(不止一個)時,觀察后面是否出現版本號4.3.0,如果出現,后面緊接著的就是路徑,如果是mingw32那么上面的命名就應該是
安裝目錄\libexec\gcc\mingw32\4.3.0
安裝目錄\mingw32\bin
如果是其他的例如i686-pc-mingw32,那么名稱相應的變為
安裝目錄\libexec\gcc\i686-pc-mingw32\4.3.0
安裝目錄\i686-pc-mingw32\bin
好了,可以測試一下你的hallo world程序了^_^