心胸决定格局,眼界决定境界...

MinGW

MinGW是指只用自由软件来生成纯粹的Win32可执行文件的编译环境,

MinGW 提供了一套简单方便的Widnows下的基于GCC程序开发环境

因此无法使用VS来编译Linux代码,只能在模拟开发环境下,用gdb调试,不方便。

如果直接使用Eclipse,编译器可以选择GCC,但是相关的Linux库文件无法配置,因此也无法编译调试。

如果使用MinGW+Eclipse+Linux代码,

MinGW同步还有一套MSYS(Miminal SYStem)工具,类似在Linux/Unix环境下的自动脚本配置和MakeFile的自动生成。

 

MinGW,即 Minimalist GNU For Windows。它是一些头文件和端口库的集合

该集合允许人们在没有第三方动态链接库的情况下使用 GCC(GNU Compiler C)产生 Windows32 程序。

实际上 MinGW 并不是一个 C/C++ 编译器,而是一套 GNU 工具集合。除开 GCC (GNU 编译器集合) 以外,MinGW 还包含有一些其他的 GNU 程序开发工具 (比如 gawk bison 等等)
开发 MinGW 是为了那些不喜欢工作在 Linux(FreeBSD) 操作系统而留在 Windows 的人提供一套符合 GNU 的 GNU 工作环境

(此前的 cygwin 虽然也是 GNU 的 Windows 移植,但是 cygwin 是有版权的,而不是 GNU。)

MinGW使用Windows中的C运行库,MinGW开发的程序只能使用Win32API和跨平台的第三方库

MinGW的三种下载版本
======
current--最稳定的版本
previous
candidate
 
为建立MinGW下的gcc/g++开发环境,需要的基本模块组件
======
(1) w32api-3.6.tar.gz                   [win32下的头文件库文件集合]
(2) mingw-runtime-3.9-tar.gz            [MinGW 的运行支持库模块集合]
(3) mingw-utils-0.3.tar.gz              [MinGW 常用工具集合]
(4) binutils-2.15.91-20040904-1.tar.gz  [MinGW支持 gcc/g++的 binutils集合,如经典的ld等] 
(5) gcc-core-3.4.2-20040916-1.tar.gz    [MinGW 支持gcc/g++的core集合]
(6) gcc-g++-3.4.2-20040916-1.tar.gz     [MinGW 的gcc/g++编译工具集合]
(7) mingw32-make-3.80.0-3.tar.gz        [MinGW 的make工具集合]
以上的文件解压缩到固定的目录,比如C:\MinGW,就可以使用了。但是不熟悉的用户可能会遇到各种各样的问题,为避免你这样的烦恼,我们去下载一个主安装软件
 
======
MinGW-5.1.3.exe
MinGW的使用
======
(0) 进入MinGW的安装目录,如C:\MinGW,找到bin目录下mingw32-make.exe,把该文件拷贝到本地(复制粘贴),把文件名改为 make.exe(之后就可以直接使用make来操作makefile)
(1)假设在D:\project 下开发,后续本节中文件建立均在该目录下操作
(2) 创建三个文件:cmnd.bat,makefile,main.cpp
cmnd.bat
======
set path=C:\mingw\bin;%PATH%
cmd
 
makefile
======
# makefile for MinGW Hello World Test
# @copyright 2007/05/01 by zenf
 
CC = g++
AR = ar
LD = ld
 
RM = del
#RM = rm -rf
MV = MOVE /Y
CP = copy
C++FLAGS = -g -Wno-deprecated -Wall -Werror -I.
OBJ_LIST = $(subst .cpp,.o,$(wildcard *.cpp))
TARGET = main.exe
 
all: depend.dep $(TARGET)
 
$(TARGET): $(OBJ_LIST)
<table> $(CC) -o $(TARGET) $(OBJ_LIST) -mconsole
<table> main.exe
clean:
<table> $(RM) *.o *.obj *.tmp *.exe *.dep *.s
 
depend.dep:
<table> $(CC) -M $(C++FLAGS) $(wildcard *.cpp) > $@
 
-include depend.*
 
.cpp.o:
<table> $(CXX) -c $(C++FLAGS) $<
%.dir:%
<table> $(MAKE) -C $< $(DEBUG_MAKE)
(3) 编译运行 console 模式
    双击 cmnd.bat, 进入command模式
    输入 make, make自动调用makefile 编译 main.cpp,并且自动运行编译后的结果main.exe
(4) 编译运行windows模式
    编辑main.cpp,修改为如下代码内容
main.cpp
======
#include <windows.h>
int WINAPI WinMain(HINSTANCE hInstance,
  HINSTANCE hPrevInstance,
PSTR szCmdLine,
int iCmdShow)
{
MessageBox(NULL,"Hello World,My Dear","Hello Demo",MB_OK);
return (0);
}
makefile
======
-mconsole 修改为 -mwindows
 
======
posted @ 2014-01-22 15:28  WELEN  阅读(364)  评论(0)    收藏  举报