MinGW是指只用自由软件来生成纯粹的Win32可执行文件的编译环境,它是Minimalist GNU on Windows的略称,实际上 MinGW 并不是一个 C/C++ 编译器,而是一套 GNU 工具集合。除开 GCC (GNU 编译器集合) 以外,MinGW 还包含有一些其他的 GNU 程序开发工具 (比如 gawk bison 等等)。
开发 MinGW 是为了那些不喜欢工作在 Linux(FreeBSD) 操作系统而留在 Windows 的人提供一套符合 GNU 的 GNU 工作环境。
MinGW:一个可自由使用和自由发布的Windows特定头文件和使用GNU工具集导入库的集合,允许你生成本地的Windows程序而不需要第三方C运行时库。实际上MinGW 并不是一个 C/C++ 编译器,而是一套 GNU 工具集合。除开 GCC (GNU 编译器集合) 以外,MinGW 还包含有一些其他的 GNU 程序开发工具 (比如 gawk bison 等等)。
开发 MinGW 是为了那些不喜欢工作在 Linux(FreeBSD) 操作系统而留在 Windows 的人提供一套符合 GNU 的 GNU 工作环境。 体说来,使用 MinGW 就是 GNU。
这是mingw的最新版。
mingw的安装和使用:
1) 下载MinGW
2) 以版本5.1.6为例,下载后为MinGW-5.1.6.exe,默认地被安装到C:\MinGW,安装是选择如下:
3)创建bat方便使用MinGW
在安装的跟目录下创建bat,来方便我们使用MinGW,bat如下:
set path=c:\mingw\bin;%path%
start cmd
4)使用MinGW的gcc
在C:\MinGW\example下创建helloworld.c,然后使用MinGW的gcc来编译,然后运行,如下:
MinGW开发wxWidgets实例:
安装完MinGW,我们需要在环境变量里添加一个wxWidgets根目录环境变量,这里我命名为: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”。
继续“Next”,输入作者和及一些版权说明信息。
继续“Next”,选择GUI设计工具和程序类型,这里我就用wxSmith和Dialog based。
按“Next”,接下来的就是wxWidgets环境的一些设置了,这里我们输入刚才设置的wxWidgets根目录,直接填入“$(#wx)”就可以了。
按“Next”,这里我们看到默认就是选择了MinGW编译器了,下面的我们只做Debug版本,所以只选上“Create “Debug” configuration”。
继续“Next”,接下来要选择怎么使用wxWidgets库,这里根据你编译的wxWidgets库是什么样的来。
按“Next”,因为选择了“Configure Advanced Options”,所以要对使用wxWidgets库做更多的设置,这里我们选上我们使用lib方式调用。
按“Next”进到最后一步,我们选择需要用到的库,不知道的话全部选上。
点击“Finish”,工程随即建立成功。
我们按F8进行编译调试,我们可能看到如下错误:
这是因为默认的库里没有这些库的原因,我们通过菜单“Project”->“Build options”,修改“Linker settings”下的“Link libraries”,选择刚才那几个缺失的库,点击“delete”去掉。
再按F8编译调试,我们就可以发现工程可以运行成功了。
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环境是使用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的。