在Windows操作系统下的gcc

在Windows操作系统下的gcc

第一节 GCC家族概览

GCC是一个原本用于Unix-like系统下编程的编译器。
不过,现在GCC也有了许多Win32下的移植版本。所以,也许对于许多Windows开发者来说,GCC还是一个比较陌生的东西。所以,我希望通过这章的叙述,让你——一个Windows开发者对GCC这一个优秀的编译器有一个大概的了解。

历史

GCCGNU公社的一个项目。是一个用于编程开发的自由编译器。最初,GCC只是一个C语言编译器,他是GNU C Compiler 的英文缩写。随着众多自由开发者的加入和GCC自身的发展,如今的GCC以经是一个包含众多语言的编译器了。其中包括 C,C++,Ada,Object CJava等。所以,GCC也由原来的GNU C Compiler变为GNU Compiler Collection。也就是 GNU编译器家族 的意思。当然,如今的GCC借助于他的特性,具有了交叉编译器的功能,即在一个平台下编译另一个平台的代码。

直到现在, GCC 的历史仍然在继续,他的传奇仍然被人所传颂。

Windows 下的 GCC 家族

起初, GCC 是用于 Unix,Unix-like 系统的编译器。不过,现在 Windows 下也出现了 GCC 的稳定移植版。这要感谢 Internet 上众多程序员的共同努力。

如今,在Windows下比较流行的GCC移植版主要有三个。他们是 MinGW,CygwinDjgpp。虽然,Djgpp是应用于DOS系统的,考虑到windowsDOS的兼容,所以也将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

简介

MinGWMinimalistic GNU for Windows 的缩写。她是一个建立在GCCbinutils 项目上的编译器系统。和其他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

win32API函数头文件和连接库

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 社区去获得参考。
原图: http://static.kdenews.org/mirrors/kde-cygwin-shots/kde-cygwin-normal.png | 1024x768

第四节 脚踏两只船的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 Win32IDE。同时,从这一章开始,我将向各位读者做一个小小的要求。那就是,希望你们能够将自己对这篇文章感到的不足告诉我,我将随时修改以发表的内容,以适合广大读者的要求。如果各位有什么想法或者意见,疑惑。 

你可能感兴趣的:(在Windows操作系统下的gcc)