作者:龙飞

3.1:MinGW 是什么?

MinGW 提供了一套简单方便的Windows下的基于GCC 程序开发环境。MinGW 收集了一系列免费的Windows 使用的头文件和库文件;同一时候整合了GNU( http://www.gnu.org/ )的工具集,特别是GNU 程序开发工具,如经典gcc, g++, make等。MinGW是全然免费的自由软件,它在Windows平台上模拟了Linux下GCC的开发环境,为C++的跨平台开发提供了良好基础支持,为了在Windows下工作的程序猿熟悉Linux下的C++工程组织提供了条件。

3.2:为什么使用MinGW?

由于我和非常多IT人士一样,不愿意吊死在$M这棵树上。且不说开源这个理念的伟大,仅仅就Windows的安全性也已经让人们非常不安心了。假设再深入一点从编敲代码来看,在C++标准尚不成熟时期产生的MFC今天看来基本上就是盖子大叔凭着个人(也许是$M公司^^)理解所使用的C++方言。在我们期盼C++0x时代到来之前,没有不论什么实际行动能比严格遵循C++的ISO标准更能表达我们对于C++这个伟大的哲学体系的尊重。从这个角度来说,遵循ISO标准的实现就是好的实现。所以,MinGW不会比VC差,况且,他既是开源软件家族中的一员,也是*nix平台下事实标准GCC的翻版。假设有一天我们開始使用Linux平台了,会由于今天透过MinGW所了解的GCC知识而受益。

3.3:MinGW 的下载和安装。

MinGW的官方主页是:
http://www.mingw.org/
        你非常easy找到下载的链接。下载文件是放在sourceforge上的,这也表明MinGW本身也是个在开发中的项目。
http://sourceforge.net/project/showfiles.php?group_id=2435
        下载页面上有非常多令人眼花缭乱的文件,不用害怕,由于这才是软件最真实的一面。当然,这个软件的提供者为普通使用者也提供了最为简单的下载和安装方式。你仅仅须要下载“MinGW自己主动下载和安装软件”(Package: Automated MinGW Installer; Release: MinGW-5.1.3)MinGW-5.1.3.exe就能够依据提示简单的安装了。而且,安装后的MinGW甚至能够通过这个文件来自己主动升级,非常的人性化。
        安装时须要注意下面几个方面:
1) 建议选择Current版本号,Previous表示曾经的版本号;Candidate表示当前正在开发的版本号,可能正在測试中,还不是非常稳定。
2) 在选择安装模块的时候,依据我们的须要,仅仅须要选择下面三个:MinGW base tools, g++ compiler, MinGW Make。
3) 安装路径请选择一个easy找到的地方,默认的C:/MinGW 是不错的选择。

3.4:MinGW的简单使用。

打开“命令提示符”(console)窗体,我们能够简单的把文件夹转到比方 C:/MinGW/bin 这种位置去工作。可是这显然不是一个好的方式,由于这样一定会把bin里面搞得非常混乱。所以,我们在另外一个“干净”的地方,比方 D:/Project ,把这里设置成MinGW的project工作区。这样,我们须要在系统的path里面加入能找到bin以下*.exe文件的路径,所以做一个批处理文件是最简单的方法。我的startg++.bat文件这样写的:

@cmd 

然后,你能够建立一个该文件的快捷方式放在桌面上,再为这个快捷方式指定一个美丽的图标,nice!
        接下来,我们须要建立一个cpp文件,用什么来写cpp呢?

3.4.1:(插播)Vim ??

这又是一个有着传统的“悠久”历史,非常好非常强大的,免费开源的,牛x文本编辑器。官方主页是:
http://www.vim.org/
        不用怀疑,你能够非常easy的下载Vim的安装程序,而且非常easy的安装,不须要不论什么的“破解”-_-!!
        由于Vim非常好非常强大,所以,太多的内容就留给包含我自己在内的大家自己去学了(我的逻辑Orz)。我们这里简单的仅仅须要了解例如以下几点:
1) 建立一个名为 abc.def 的文本文件,在console窗体下输入:
vim abc.def
你就进入了vim的编辑界面。
2) 按"i"键,就能够输入文本了。退回到编辑方式,按Esc,再进入插入方式,再按i,就这样...
3) vim在编辑方式下本来的光标移动是h, j, k, l,只是,上下左右箭头也是能够使用的。
4) 编辑完毕后,(编辑方式下)按Shift+Z两次,或者:wq就能够保存退出。使用:q!能够不保存强制退出。

3.4.2:MinGW的简单使用。(续)

继续刚才的话题,我们建立一个叫 hello.cpp 的文件(据说Hello World是程序猿的咒语...)

;
}

我们能够简单的使用命令:g++ hello.cpp,与最传统的Unix系统下的C编译器一样,MinGW为我们生成了一个名为a的可运行文件,当然,在win32下,名字叫做a.exe。
        能够使用參数 -o 来指定编译的可运行文件的名字:g++ -o hello.exe hello.cpp (或者也能够不写名exe,直接g++ -o hello hello.cpp 结果一样)。这样,得到的文件就是hello.exe。
        能够使用參数 -c 来生成与源文件名称同样的目标文件:g++ -c hello.cpp ,得到的文件是hello.o 。
        目标文件能够继续连接成可运行文件:g++ hello.o ,得到文件a.exe 。
        多个源文件,目标文件和库文件都能够同一时候编译和连接。

3.5:获得MinGW下的SDL开发库。(Development Libraries)

下载页面:http://www.libsdl.org/download-1.2.php
        下载:SDL-devel-1.2.13-mingw32.tar.gz (Mingw32)

3.6:为MinGW设置SDL库。

找到你在硬盘上安装MinGW的位置,相似:
C:/MinGW
打开include目录,在里面建立一个新目录,取名为SDL,打开这个新的目录:
C:/MinGW/include/SDL
然后,将SDL Development Libraries中include目录里面的文件所有复制到刚才建立起来的那个新目录中。
然后,回到MinGW的目录下,打开lib目录:
C:/MinGW/lib
将SDL Development Libraries中lib目录下的libSDL.dll.a, libSDL.la和libSDLmain.a三个文件复制到刚才的那个MinGW的lib目录下。
最后,把SDL Development Libraries中lib目录下的SDL.dll文件复制到
C:/WINDOWS/system32
下。当然,另外一个选择是将SDL.dll随时绑定到使用了SDL库编译的*.exe文件所在的目录中。这通常在公布你的程序的时候使用。

3.7:建立第一个SDL程序。

运行我们之前的那个startg++.bat 文件,打开console窗体,运行命令:vim main.cpp ,将下列代码写入并保存。

;
}

运行g++命令:g++ -o MySDL.exe main.cpp -lmingw32 -lSDLmain -lSDL
參数 -l (小写的L)使库文件得以与源文件一起编译和连接。(简单的能够觉得-labc即连接了名称符合libabc.*的全部库文件)
最后说明的两个參数是:-mconsole 和 -mwindows
他们的效果是使可运行程序是带命令行控制窗体的或者是纯Windows窗体的,缺省情况下应该是带命令行控制窗体的。
运行mysdl.exe能够看到文件的运行情况。

MinGW 介绍的更多相关文章

  1. MinGW介绍与使用

    3.1:MinGW 是什么? MinGW 提供了一套简单方便的Windows下的基于GCC 程序开发环境.MinGW 收集了一系列免费的Windows 使用的头文件和库文件:同时整合了GNU ( ht ...

  2. Windows系统结合MinGW搭建软件开发环境

    MinGW介绍 MinGW,即Minimalist GNU For Windows,它包含了GNU工具集的运行环境.GCC编译器工具集以及其它的GNU程序开发工具(如make.gawk.grep等等) ...

  3. C语言学习第一天~Eclipse MinGW环境搭建

    一.环境准备 windows 二.Windows环境下gcc编译器 1.MinGW介绍         MinGW是指只用自由软件来生成纯粹的Win32可执行文件的编译环境,它是Minimalist ...

  4. GCC学习(1)之MinGW使用

    GCC学习(1)之MinGW使用 因为后续打算分享一些有关GCC的使用心得的文章,就把此篇当作一个小预热,依此来了解下使用GNU工具链(gcc.gdb.make等)在脱离IDE的情况下如何开发以及涉及 ...

  5. 关于windows 7 安装Vim的安装步骤介绍。——Arvin

    在Ubuntu中第一次使用VIM编辑器发现好强大,打算在Win7中安装,其中遇到一些小问题,下边介绍详细的安装过程和遇到的问题. 1-安装 首先发现Github中有一款中意的作者,并且他开源的基本插件 ...

  6. Win7 64位 VS2015及MinGW环境编译矢量库agg-2.5和cairo-1.14.6

    书接上文,昨天装了MinGW,主要原因之一是要用到MSYS,所以顺手把FFMPEG又编译了一遍. 回到主题,其实我是想编译矢量库,因为最近要学习一些计算几何算法,所以找个方便的2D画图库就很重要. 说 ...

  7. Eclipse进行C/C++开发——Eclipse+CDT+MinGW的配置与使用详解

    http://hi.baidu.com/ltb6w/item/3a51f11926fda60ce75c361d Eclipse进行C/C++开发——Eclipse+CDT+MinGW的配置与使用详解 ...

  8. windows下安装mingw

    windows环境下使用gcc MinGw是Minimal GNU on Windows的缩写,允许在GNU/linux和windows平台生成本地的windows程序而不需要第三方运行时库.本文主要 ...

  9. 在Windows/Ubuntu下安装OpenGL环境(GLUT/freeglut)与跨平台编译(mingw/g++)

    GLUT/freeglut 是什么? OpenGL 和它们有什么关系? OpenGL只是一个标准,它的实现一般自带在操作系统里,只要确保显卡驱动足够新就可以使用.如果需要在程序里直接使用OpenGL, ...

随机推荐

  1. Android Camera调用过程分析

    源代码版本:allwinner 4.0.4 frameworks代码: frameworks/base/core/java/android/hardware/Camera.java JNI层代码: f ...

  2. JavaEE Tutorials (7) - 在会话bean中使用异步方法调用

    7.1异步方法调用88 7.1.1创建异步业务方法88 7.1.2从企业bean客户端调用异步方法897.2async示例应用90 7.2.1async—war模块的架构91 7.2.2运行async ...

  3. cocos2d-x游戏开发系列教程-超级玛丽07-CMGameMap(二)

    在了解地图的初始化和加载之前,我们先了解下mario的地图. 用tiled工具打开mario地图 从地图中可以看到,mario的地图有很多层构成: objects层:怪物,会动的怪物 coin层:金币 ...

  4. Pick-up sticks(判断两直线相交)

    Pick-up sticks Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 11335   Accepted: 4250 D ...

  5. hdu4405概率dp入门

    Aeroplane chess Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  6. AJAX同步与异步

    今天来大概说说AJAX中的同步与异步.其实,就我的理解,同步与异步的区别就是程序执行过程中是否有等待. 同步:意思就是js代码加载到当前的 AJAX时候,会等待AJAX代码执行完毕后再开始加载其他代码 ...

  7. Filter学习

    在这之前一直对filter感到陌生,有点细思极恐的感觉--终于下定决心来学习一下,欢迎拍砖-- Filter的主要作用是实现对HttpServletRequest的预处理,也可以对HttpServle ...

  8. iOS使用自定义字体

    http://blog.csdn.net/heartofthesea/article/details/22289399 1.将准备好的字体文件加入项目中 2.打开Build Phases—Copy B ...

  9. JProtector java应用加密工具

    JProtector    专业的java项目加密工具 JProtector简介: JProtector 专业的java项目加密工具.目前java开发的项目发布的时候需要将项目发布到用户手中,但由于一 ...

  10. python idle 错误 subprocess didn't make connection

    今天打开python idle不反应.然后通过网上搜索让我在安装文件夹下点击idle.py 弹出如图所看到的的错误,进行了非常多尝试.任然没有得到解决.可是在尝试过程中发现了大家所说问题所在都是由于新 ...