MinGW是指只用自由軟件來生成純粹的Win32可執(zhí)行文件的編譯環(huán)境,它是Minimalist GNU on Windows的略稱,實際上 MinGW 并不是一個 C/C++ 編譯器,而是一套 GNU 工具集合。除開 GCC (GNU 編譯器集合) 以外,MinGW 還包含有一些其他的 GNU 程序開發(fā)工具 (比如 gawk bison 等等)。
開發(fā) MinGW 是為了那些不喜歡工作在 Linux(FreeBSD) 操作系統(tǒng)而留在 Windows 的人提供一套符合 GNU 的 GNU 工作環(huán)境。
MinGW:一個可自由使用和自由發(fā)布的Windows特定頭文件和使用GNU工具集導入庫的集合,允許你生成本地的Windows程序而不需要第三方C運行時庫。實際上MinGW 并不是一個 C/C++ 編譯器,而是一套 GNU 工具集合。除開 GCC (GNU 編譯器集合) 以外,MinGW 還包含有一些其他的 GNU 程序開發(fā)工具 (比如 gawk bison 等等)。
開發(fā) MinGW 是為了那些不喜歡工作在 Linux(FreeBSD) 操作系統(tǒng)而留在 Windows 的人提供一套符合 GNU 的 GNU 工作環(huán)境。 體說來,使用 MinGW 就是 GNU。
這是mingw的最新版。
mingw的安裝和使用:
1) 下載MinGW
2) 以版本5.1.6為例,下載后為MinGW-5.1.6.exe,默認地被安裝到C:\MinGW,安裝是選擇如下:
3)創(chuàng)建bat方便使用MinGW
在安裝的跟目錄下創(chuàng)建bat,來方便我們使用MinGW,bat如下:
set path=c:\mingw\bin;%path%
start cmd
4)使用MinGW的gcc
在C:\MinGW\example下創(chuàng)建helloworld.c,然后使用MinGW的gcc來編譯,然后運行,如下:
MinGW開發(fā)wxWidgets實例:
安裝完MinGW,我們需要在環(huán)境變量里添加一個wxWidgets根目錄環(huán)境變量,這里我命名為:wxwin,值為D:\wxWidgets-2.9.4。接下來我們打開CodeBlocks,首先打開“Settings”->“Compiler…”菜單,選擇MinGW作為其默認編譯器。
選擇MinGW作為默認編譯器圖示(等待截圖)然后再打開“Settings”->“Global Variables…”,在設置“default”下新建立一個“wx”變量,在“Build-in fields:”下,base中填入“${wxwin}”,include中填入“${wxwin}\include”,lib中填入“${wxwin}\lib”,這些都是后面建立wxWidgets工程的向導里需要用到的。
“Settings”->“Global Variables…”設置圖設置完成后,我們就可以建立wxWidgets工程了,下面我們來一步步建立一個完整的wxWidgets示例工程。通過菜單“File”->“New”->“Project…”,選擇最后面的wxWidgets project。
點擊“Go”進入工程配置向導,首先會出來一個歡迎窗口,在這里我們直接下一步,
然后選擇機子里安裝的wxWidgets版本,我這里裝的是2.9版本,所以選擇最后一個。
按“Next”,然后輸入工程名“wxtest”。
繼續(xù)“Next”,輸入作者和及一些版權說明信息。
繼續(xù)“Next”,選擇GUI設計工具和程序類型,這里我就用wxSmith和Dialog based。
按“Next”,接下來的就是wxWidgets環(huán)境的一些設置了,這里我們輸入剛才設置的wxWidgets根目錄,直接填入“$(#wx)”就可以了。
按“Next”,這里我們看到默認就是選擇了MinGW編譯器了,下面的我們只做Debug版本,所以只選上“Create “Debug” configuration”。
繼續(xù)“Next”,接下來要選擇怎么使用wxWidgets庫,這里根據(jù)你編譯的wxWidgets庫是什么樣的來。
按“Next”,因為選擇了“Configure Advanced Options”,所以要對使用wxWidgets庫做更多的設置,這里我們選上我們使用lib方式調(diào)用。
按“Next”進到最后一步,我們選擇需要用到的庫,不知道的話全部選上。
點擊“Finish”,工程隨即建立成功。
我們按F8進行編譯調(diào)試,我們可能看到如下錯誤:
這是因為默認的庫里沒有這些庫的原因,我們通過菜單“Project”->“Build options”,修改“Linker settings”下的“Link libraries”,選擇剛才那幾個缺失的庫,點擊“delete”去掉。
再按F8編譯調(diào)試,我們就可以發(fā)現(xiàn)工程可以運行成功了。
MinGW的工具列表:
addr2line.exe
ar.exe
as.exe
c++.exe
c++filt.exe
cpp.exe
dlltool.exe
dllwrap.exe
g++.exe
gcc.exe
gccbug
gcov.exe
gprof.exe
ld.exe
mingw32-c++.exe
mingw32-g++.exe
mingw32-gcc-3.4.5
mingw32-gcc.exe
mingw32-make.exe
mingwm10.dll
nm.exe
objcopy.exe
objdump.exe
ranlib.exe
readelf.exe
size.exe
strings.exe
strip.exe
t.txt
windmc.exe
windres.exe
當然我們可以在Codeblocks或Eclipse中吃用MinGW的gcc和g++編譯器。
如果想使用更多的linux的工具或想在模擬的linux環(huán)境是使用MinGW的gcc的話,需要安裝MSYS和相應的tools。如下:
MSYS Supplementary Tools\msysDTK-1.0.1.exe
MSYS Base System
MSYS binutils
MSYS bash,perl,vim,tar,zip,grep,awk,sed,libtool,autoconf,automake。。。。
或者也可以使用MinGW的libtool,autoconf,automake代替MSYS的。