gcc for Windows 开发环境介绍
导读:
在Windows操作系统下的gcc
第一节 GCC家族概览
GCC是一个原本用于Unix-like系统下编程的编译器。
只是,如今GCC也有了很多Win32下的移植版本号。所以,或许对于很多Windows开发人员来说,GCC还是一个比較陌生的东西。所以,我希望通过这章的叙述,让你——一个Windows开发人员对GCC这一个优秀的编译器有一个大概的了解。
历史
GCC是GNU公社的一个项目。是一个用于编程开发的自由编译器。最初,GCC仅仅是一个C语言编译器,他是GNU C Compiler 的英文缩写。随着众多自由开发人员的加入和GCC自身的发展,如今的GCC以经是一个包括众多语言的编译器了。当中包括 C,C++,Ada,Object C和Java等。所以,GCC也由原来的GNU C Compiler变为GNU Compiler Collection。也就是 GNU编译器家族 的意思。当然,如今的GCC借助于他的特性,具有了交叉编译器的功能,即在一个平台下编译还有一个平台的代码。
直到如今,GCC的历史仍然在继续,他的传奇仍然被人所传颂。
Windows下的GCC家族
起初,GCC是用于Unix,Unix-like系统的编译器。只是,如今Windows下也出现了GCC的稳定移植版。这要感谢Internet上众多程序猿的共同努力。
如今,在Windows下比較流行的GCC移植版主要有三个。他们是 MinGW,Cygwin和Djgpp。尽管,Djgpp是应用于DOS系统的,考虑到windows对DOS的兼容,所以也将Djgpp纳入当中了。
整体来说,MinGW,Cygwin和Djgpp各有特色,针对不同的应用场合,能够选择不同的移植版来满足须要。MinGW这个系列的移植,主要方向是让GCC的Windows移植版能使用Win32API来编程。而Cygwin的目标是能让Unix-like下的程序代码在Windows下直接被编译。至于Djgpp,则是想让DOS下也能用上GCC。
所以,对于开发人员不同的需求。选择合适的移植版会让工作变得轻松而高效。
本书的GCC
我个人对GCC的移植版都非常喜欢。不论是MinGW还是Cygwin,亦或是Djgpp。在本书中,除了特殊说明以外,所述的内容适合全部这三种移植版。
只是,考虑到如今在Windows下用的比較多的是MinGW系列。再加上MinGW较Cygwin和Djgpp安装和使用更为简便。所以,建议读者学习时还是使用MinGW。
第二节 入乡随俗的MinGW
简单介绍
MinGW是Minimalistic GNU for Windows 的缩写。她是一个建立在GCC和binutils 项目上的编译器系统。和其它GCC的移植版相比,她能够说是最接近Win32的一个了。由于,MinGW差点儿支持全部的Win32API,这也是MinGW的特色之中的一个。她所连接的程序,不须要不论什么第三方库就能够执行了。在某种程度上看,MinGW更像是VC的替代品。
获得与安装
MinGW能够从MinGW的官方站点 http://www.mingw.org上获得。
假设,你要安装MinGW,那么你有两种安装方案。以下我来一一介绍。
安装方案一:
首先,你要从 http://www.mingw.org/download.shtml上下载例如以下几个压缩包。考虑到文件的更新和文章的灵活性。我将仅仅写出文件的主要部分,将省去版本号好和更新日期。
gcc-core C语言编译器
gcc-c++ C++语言编译器
mingw-runtime MinGW的执行时库(这个必须安装)
win32api win32的API函数头文件和连接库
binutils MinGW的汇编器和连接器等基础工具
gdb MinGW中的调试工具
mingw32-make Make工具,用以更好的管理你的项目
然后,将上述文件逐一下载,然后全部解压缩到一个文件夹下就能够了,我这里假设你是移动到$(MINGW)这个文件夹下了。这样,你的MinGW就算成功安装了。
最后到DOS终端上,将当前文件夹转换成 $(MINGW)/bin 下。输入
C:/>gcc -v
看到一段gcc的版本号信息,这就能说明,你的gcc已经能够正常工作了。
安装方案二:
你能够从 http://www.mingw.org/download.shtml上下载 MinGW5.0.2.exe 这个程序。至少,在我写此文的时候,这个是最新版本号。
下载以后执行安装,至于安装过程,我想我就不一一介绍了。对于Windows下的开发人员,我想这个应该不是什么问题了。
在一切都选择好以后。这个程序就開始从Internet上下载所须要的压缩包。然后,逐一解开,安装。
整体来说,两种方法各有好处。只是,本人偏爱第一中方法。由于,控制度高,并且,更新也比較简单。自己心里也比較明了。
环境设置:
对于我们这些使用者来说,最好是能够简单方便的使用工具。所以,我们就须要设置环境,便于我们使用MinGW。
对于设置,我们仅仅须要在环境变量中的PATH 变量中,加入$(MINGW)/bin这个路径就能够了。
这样,你就能够在不论什么文件夹下使用MinGW了。
第三节 人在曹营心在汉的Cygwin
介绍
Cygwin,事实上并非一个GCC。她是让Windows拥有Unix-like环境的软件。所以,GCC自然也就会包括在里面。只是,对于开发人员,Cygwin是一个开发环境。而对于用户来说Cygwin是一个执行环境。
Cygwin唯一和MinGW最大的差别在于,使用Cygwin能够在Windows下调用Unix-like的系统函数。比方进程函数,等等。所以,尽管说,Cygwin是执行在Windows下的,可是她还是使用的是Unix-like系统的函数和思想。
获得与安装
Cygwin能够从Cygwin的官方站点获得安装程序 http://www.cygwin.com/
在站点上下载Cygwin的安装程序setup.exe。然后执行便能够了。
关于前面的设置,我想不用多做介绍了。由于,对于这些我想Windows下的开发人员应该相当清楚了。
在到了选择安装的组件时,在Devel 选项下,将gcc-core,gcc-g++ 等前的skip 点击成你所须要的版本号号。
然后在 Lib选项卡中,将glib2,glib2-devel,glib2-runtime前的skip点成版本号号。
接下来,就点击next就能够了。在一段漫长的等待时间后,你的Cygwin开发环境就算安装好了。
相对来说,Cygwin的安装和配置都比較简单。由于,Cygwin提供了一个比較健全的安装程序。
使用
在安装文件夹下,执行cygwin.bat就能够启动cygwin环境了。这是一个模拟Linux的环境,所以非常多地方可能和Dos有比較大的差距。只是,你编译出的程序能够直接在其它没有安装Cygwin的机器上执行。还有,假设要切换到windows下的其它盘下,比方D盘。那么就能够使用
$cd /cygdrive/d/
对于Cygwin很多其它关于使用的内容,你能够到Linux社区去获得參考。
第四节 脚踏两仅仅船的Djgpp
介绍
Djgpp,是一个在纯Dos下的GCC移植版本号。她使用一些软件将纯Dos设置成32位的环境,并执行由她编译出来的程序。整体来说,Djgpp并非一个Windows的移植版。只是,她确实能够在Windows下执行。对于一些特殊应用。Djgpp是唯一适合的。
获得与安装
Djgpp,能够从Djgpp的官方站点上下载 http://www.delorie.com/djgpp/
只是,这里Djgpp为用户做了更好多的安排。她为用户提供了一个定制安装的页面。
http://www.delorie.com/djgpp/zip-picker.html
您仅仅须要在上面填写响应的内容,然后递交。她将会给你一份完整的安装方案。
使用
相对来说,Djgpp我并非常常使用。所以,本文中在没有特殊说明情况下,不会使用Djgpp的。
文外音:
整体来说,这篇文章写的有些匆忙。所以可能有些地方有不足。所以,希望各位能够多多原谅批评和不吝赐教。下一章,我将介绍GCC for Win32的IDE。同一时候,从这一章開始,我将向各位读者做一个小小的要求。那就是,希望你们能够将自己对这篇文章感到的不足告诉我,我将随时改动以发表的内容,以适合广大读者的要求。假设各位有什么想法或者意见,疑惑。
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1819084
本文转自
http://blog.csdn.net/Mobidogs/archive/2007/10/10/1819084.aspx
gcc for Windows 开发环境介绍的更多相关文章
- GCC for Win32开发环境介绍
http://blog.csdn.net/VisionCat/article/details/711693 http://blog.csdn.net/VisionCat/article/categor ...
- BI之SSAS完整实战教程2 -- 开发环境介绍及多维数据集数据源准备
上一篇我们已经完成所有的准备工作,现在我们就开始动手,通过接下来的三篇文章创建第一个多维数据集. 传统的维度和多维数据集设计方法主要是基于现有的单源数据集. 在现实世界中,当开发商业智能应用程序时,很 ...
- Arduino可穿戴开发入门教程Arduino开发环境介绍
Arduino可穿戴开发入门教程Arduino开发环境介绍 Arduino开发环境介绍 Arduino不像我们使用的PC端操作系统一样,可以直接在操作系统中安装软件为操作系统编程.Arduino的软件 ...
- Spark+ECLIPSE+JAVA+MAVEN windows开发环境搭建及入门实例【附详细代码】
http://blog.csdn.net/xiefu5hh/article/details/51707529 Spark+ECLIPSE+JAVA+MAVEN windows开发环境搭建及入门实例[附 ...
- (二)react-native开发系列之windows开发环境配置
之前写了react-native在mac上得环境搭建,但是如果只开发android的话,只要用windows系统就可以了,下面就来说下react-native的windows开发环境配置. 1.下载配 ...
- Windows 8 Metro 应用开发入门(一):开发环境介绍
摘 要 Windows8已经发布,随之而来的基于WinRT的Metro应用也正向我们走来,正像它所宣传的:光滑.快.现代.看习惯了玻璃.立体风格的应用,或许Metro的简洁能给你留下不一样的体验.Vi ...
- Objective-C在windows开发环境的搭建
转自 http://www.hdj.me/objective-c-in-windows 安装GNUstep GNUstep Windows Installer提供了Windows平台下的Objecti ...
- 我的windows开发环境设定与日常使用指南
目录 开发相关的软件包安装.设定 Visual Studio 默认设定 鼠标右键添加"在此处打开cmd"选项 git gvim notepad++ VSCode-Insider C ...
- 【转】cocos2d-x windows开发环境配置
声明:本教程在参考了以下博文,并经过自己的摸索后实际操作得出,本教程系本人原创,由于升级后的cocos2d-x有了一些变化,目前的博文还没有关于Cocos2d-x 2.2.1最新版搭建Android交 ...
随机推荐
- Android开发工具之adt-bundle-windows
adt-bundle-windows是非常久之前的android开发工具.是集成了ADT版本号的eclipse,可是里面并没有下载SDK.这个须要自己单独下载,这个工具适合刚開始学习的人使用. 由于刚 ...
- android中常见声音操作方式(Ringtone,SoundPool,MediaPlayer)小结
在Android开发中有时候需要用到播放声音操作,在android API 的media包中有三种方式可供我们选择,它们分别是Ringtone,SoundPool,MediaPlayer.因为在我目前 ...
- 117.C语言实现桌面输出图片,桌面输出文字,桌面画线
通过获取窗口句柄,然后获取窗口DC,然后画图 #include <Windows.h> #include <stdio.h> //桌面画线 void drawLine() { ...
- 116.C语言异常抛错
#include <stdlib.h> #include <stdio.h> #include <setjmp.h> //异常抛错检测 jmp_buf buf1; ...
- JS学习笔记 - fgm练习 - 数字自增 定时器 数字比大小Math.max
<script> window.onload = function(){ var oP = document.getElementsByTagName('p')[0]; var i = 0 ...
- 洛谷 P2025 脑力大人之监听电话
P2025 脑力大人之监听电话 题目背景 画外音: (声明:不要管前面那个,纯属意外,现已经重新编题,绝对原创) 上次海选,我们选出了参赛者中的20%参加本次比赛,现在我们将进行第二轮的筛选,这次的比 ...
- js进阶 13-5 jquery队列动画如何实现
js进阶 13-5 jquery队列动画如何实现 一.总结 一句话总结:同一个jquery对象,直接写多个animate()就好. 1.什么是队列动画? 比如说先左再下,而不是左下一起走 2.怎么实现 ...
- JS中的发布订阅模式
一. 你是如何理解发布订阅模式的 JS中的设计模式: 单例模式:处理业务逻辑 构造原型模式:封装类库,组件,框架,插件等 类库:jQuery 只是提供了一些常用的方法,可以应用到任何的项目中,不具备业 ...
- Android实现主动连接蓝牙耳机
在Android程序中可以实现自动扫描蓝牙.配对蓝牙.建立数据通道. 蓝牙分不同类型,可以参考(http://gqdy365.iteye.com/admin/blogs/2229304) 可以入下面方 ...
- 【POJ 3415】Common Substrings
[链接]h在这里写链接 [题意] 求两个串的长度大于等于k的公共子串个数. 相同的重复计数. [题解] 先把两个字符串用一个分隔符分开.最好比出现的字符都大的一个数字. ...