MinGW是指只用自由軟件來(lái)生成純粹的Win32可執(zhí)行文件的編譯環(huán)境,它是Minimalist GNU on Windows的略稱,實(shí)際上 MinGW 并不是一個(gè) C/C++ 編譯器,而是一套 GNU 工具集合。除開 GCC (GNU 編譯器集合) 以外,MinGW 還包含有一些其他的 GNU 程序開發(fā)工具 (比如 gawk bison 等等)。
開發(fā) MinGW 是為了那些不喜歡工作在 Linux(FreeBSD) 操作系統(tǒng)而留在 Windows 的人提供一套符合 GNU 的 GNU 工作環(huán)境。
MinGW:一個(gè)可自由使用和自由發(fā)布的Windows特定頭文件和使用GNU工具集導(dǎo)入庫(kù)的集合,允許你生成本地的Windows程序而不需要第三方C運(yùn)行時(shí)庫(kù)。實(shí)際上MinGW 并不是一個(gè) C/C++ 編譯器,而是一套 GNU 工具集合。除開 GCC (GNU 編譯器集合) 以外,MinGW 還包含有一些其他的 GNU 程序開發(fā)工具 (比如 gawk bison 等等)。
開發(fā) MinGW 是為了那些不喜歡工作在 Linux(FreeBSD) 操作系統(tǒng)而留在 Windows 的人提供一套符合 GNU 的 GNU 工作環(huán)境。 體說(shuō)來(lái),使用 MinGW 就是 GNU。
這是mingw的最新版。
mingw的安裝和使用:
1) 下載MinGW
2) 以版本5.1.6為例,下載后為MinGW-5.1.6.exe,默認(rèn)地被安裝到C:\MinGW,安裝是選擇如下:
3)創(chuàng)建bat方便使用MinGW
在安裝的跟目錄下創(chuàng)建bat,來(lái)方便我們使用MinGW,bat如下:
set path=c:\mingw\bin;%path%
start cmd
4)使用MinGW的gcc
在C:\MinGW\example下創(chuàng)建helloworld.c,然后使用MinGW的gcc來(lái)編譯,然后運(yùn)行,如下:
MinGW開發(fā)wxWidgets實(shí)例:
安裝完MinGW,我們需要在環(huán)境變量里添加一個(gè)wxWidgets根目錄環(huán)境變量,這里我命名為:wxwin,值為D:\wxWidgets-2.9.4。接下來(lái)我們打開CodeBlocks,首先打開“Settings”->“Compiler…”菜單,選擇MinGW作為其默認(rèn)編譯器。
選擇MinGW作為默認(rèn)編譯器圖示(等待截圖)然后再打開“Settings”->“Global Variables…”,在設(shè)置“default”下新建立一個(gè)“wx”變量,在“Build-in fields:”下,base中填入“${wxwin}”,include中填入“${wxwin}\include”,lib中填入“${wxwin}\lib”,這些都是后面建立wxWidgets工程的向?qū)Ю镄枰玫降摹?/p>
“Settings”->“Global Variables…”設(shè)置圖設(shè)置完成后,我們就可以建立wxWidgets工程了,下面我們來(lái)一步步建立一個(gè)完整的wxWidgets示例工程。通過(guò)菜單“File”->“New”->“Project…”,選擇最后面的wxWidgets project。
點(diǎn)擊“Go”進(jìn)入工程配置向?qū)В紫葧?huì)出來(lái)一個(gè)歡迎窗口,在這里我們直接下一步,
然后選擇機(jī)子里安裝的wxWidgets版本,我這里裝的是2.9版本,所以選擇最后一個(gè)。
按“Next”,然后輸入工程名“wxtest”。
繼續(xù)“Next”,輸入作者和及一些版權(quán)說(shuō)明信息。
繼續(xù)“Next”,選擇GUI設(shè)計(jì)工具和程序類型,這里我就用wxSmith和Dialog based。
按“Next”,接下來(lái)的就是wxWidgets環(huán)境的一些設(shè)置了,這里我們輸入剛才設(shè)置的wxWidgets根目錄,直接填入“$(#wx)”就可以了。
按“Next”,這里我們看到默認(rèn)就是選擇了MinGW編譯器了,下面的我們只做Debug版本,所以只選上“Create “Debug” configuration”。
繼續(xù)“Next”,接下來(lái)要選擇怎么使用wxWidgets庫(kù),這里根據(jù)你編譯的wxWidgets庫(kù)是什么樣的來(lái)。
按“Next”,因?yàn)檫x擇了“Configure Advanced Options”,所以要對(duì)使用wxWidgets庫(kù)做更多的設(shè)置,這里我們選上我們使用lib方式調(diào)用。
按“Next”進(jìn)到最后一步,我們選擇需要用到的庫(kù),不知道的話全部選上。
點(diǎn)擊“Finish”,工程隨即建立成功。
我們按F8進(jìn)行編譯調(diào)試,我們可能看到如下錯(cuò)誤:
這是因?yàn)槟J(rèn)的庫(kù)里沒(méi)有這些庫(kù)的原因,我們通過(guò)菜單“Project”->“Build options”,修改“Linker settings”下的“Link libraries”,選擇剛才那幾個(gè)缺失的庫(kù),點(diǎn)擊“delete”去掉。
再按F8編譯調(diào)試,我們就可以發(fā)現(xiàn)工程可以運(yù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
當(dāng)然我們可以在Codeblocks或Eclipse中吃用MinGW的gcc和g++編譯器。
如果想使用更多的linux的工具或想在模擬的linux環(huán)境是使用MinGW的gcc的話,需要安裝MSYS和相應(yīng)的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的。