MinGW 介绍
作者:龙飞
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文件这样写的:
然后,你能够建立一个该文件的快捷方式放在桌面上,再为这个快捷方式指定一个美丽的图标,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 介绍的更多相关文章
- MinGW介绍与使用
3.1:MinGW 是什么? MinGW 提供了一套简单方便的Windows下的基于GCC 程序开发环境.MinGW 收集了一系列免费的Windows 使用的头文件和库文件:同时整合了GNU ( ht ...
- Windows系统结合MinGW搭建软件开发环境
MinGW介绍 MinGW,即Minimalist GNU For Windows,它包含了GNU工具集的运行环境.GCC编译器工具集以及其它的GNU程序开发工具(如make.gawk.grep等等) ...
- C语言学习第一天~Eclipse MinGW环境搭建
一.环境准备 windows 二.Windows环境下gcc编译器 1.MinGW介绍 MinGW是指只用自由软件来生成纯粹的Win32可执行文件的编译环境,它是Minimalist ...
- GCC学习(1)之MinGW使用
GCC学习(1)之MinGW使用 因为后续打算分享一些有关GCC的使用心得的文章,就把此篇当作一个小预热,依此来了解下使用GNU工具链(gcc.gdb.make等)在脱离IDE的情况下如何开发以及涉及 ...
- 关于windows 7 安装Vim的安装步骤介绍。——Arvin
在Ubuntu中第一次使用VIM编辑器发现好强大,打算在Win7中安装,其中遇到一些小问题,下边介绍详细的安装过程和遇到的问题. 1-安装 首先发现Github中有一款中意的作者,并且他开源的基本插件 ...
- Win7 64位 VS2015及MinGW环境编译矢量库agg-2.5和cairo-1.14.6
书接上文,昨天装了MinGW,主要原因之一是要用到MSYS,所以顺手把FFMPEG又编译了一遍. 回到主题,其实我是想编译矢量库,因为最近要学习一些计算几何算法,所以找个方便的2D画图库就很重要. 说 ...
- Eclipse进行C/C++开发——Eclipse+CDT+MinGW的配置与使用详解
http://hi.baidu.com/ltb6w/item/3a51f11926fda60ce75c361d Eclipse进行C/C++开发——Eclipse+CDT+MinGW的配置与使用详解 ...
- windows下安装mingw
windows环境下使用gcc MinGw是Minimal GNU on Windows的缩写,允许在GNU/linux和windows平台生成本地的windows程序而不需要第三方运行时库.本文主要 ...
- 在Windows/Ubuntu下安装OpenGL环境(GLUT/freeglut)与跨平台编译(mingw/g++)
GLUT/freeglut 是什么? OpenGL 和它们有什么关系? OpenGL只是一个标准,它的实现一般自带在操作系统里,只要确保显卡驱动足够新就可以使用.如果需要在程序里直接使用OpenGL, ...
随机推荐
- 教你怎么用Mono Cecil - 动态注入 (注意代码的注释)
原文 教你怎么用Mono Cecil - 动态注入 (注意代码的注释) 使用 Mono Cecil 进行反编译:using Mono.Cecil; using Mono.Cecil.Cil; //.. ...
- 基于visual Studio2013解决C语言竞赛题之0405阶乘求和
题目 解决代码及点评 这道题和上一道题类似,第n个累加项 = n-1累加项的n倍 由于有这个规律,我们可以用一个for循环实现 但是例子代码并没有这么做,大家可以回去修改下代码,使得代码更 ...
- Eucalyptus和Openstack最近版本的改动简单对比
Eucalyptus3.3四月底发布的,Q4会发布3.4,最新代码都可以在Github上获得 3.3里主要加入的东西有: Auto Scaling 自动扩展,虚拟机资源随需要实时变更 ELB 负载均衡 ...
- Codeforces Round #315 (Div. 2A) 569A Music (模拟)
题目:Click here 题意:(据说这个题的题意坑了不少人啊~~~)题目一共给了3个数---- T 表示歌曲的长度(s).S 表示下载了歌曲的S后开始第一次播放(也就是说S秒的歌曲是事先下载好的) ...
- listview添加onItemClickListener
MainActivity.java package com.wyl.listview04; import java.util.ArrayList; import java.util.HashMap; ...
- win7 ShuipFCMS 配置 及问题
随风下载地址:http://www.shuipfcms.com/download.shtml 碰到问题: 一.mb_strlen 函数不支持 到php.ini 开启 ;extension=php ...
- 使用jquery获取ul的li的值赋值
jquery:$('#dropdownMenu1').val(str);不jquery:document.getElementById('dropdownMenu1').value = str;
- 2-SAT 及 一点习题
今天简单学习了一下2-SAT.现在简单地总结一下.至于定义之类的就不写了,这里就写写做法,以防以后忘记. 构图 每个值a,拆为两个点,一个表示a,一个表示^a(非a).每个点我们可以看成是一个命题(这 ...
- 基于html5 localStorage , web SQL, websocket的简单聊天程序
new function() { var ws = null; var connected = false; var serverUrl; var connectionStatus; var send ...
- opencv保存视频
利用opencv提供的方法,从摄像头获取视频,并保存为.avi格式文件. win8.1,opencv248,vs2013下测试 #include<opencv\cv.h> #include ...