用户操作
[即时聊天] [发私信] [加为好友]
北斗星君ID:VisionCat
220771次访问,排名335,好友0人,关注者33人。
安静的人
VisionCat的文章
原创 71 篇
翻译 0 篇
转载 4 篇
评论 717 篇
北斗星君的公告
神的话语
歌林多前书13章4-8节
爱是恒久忍耐,又有恩慈。爱是不嫉妒。爱是不自夸。不张狂。不作害羞的事。不求自己的益处。不轻易发怒。不计算人的恶。不喜欢不义。只喜欢真理。凡事包容。凡事相信。凡事盼望。凡事忍耐。爱是永不止息。
ICQ:
206-425-719
MSN:
Huangxiangkui@msn.com
OICQ:
170411742
最近评论
1ya1yayao:弱弱的问一下北斗星君,g95-MINgw是个什么东西呢?
我在用cygwin运行fvcom时要用到g95编译器,cygwin安装时那个make工具包藏的很深,我安装完cygwin后总是不能make,提示command not found ,而g95-mingw这款软件包含了make。那到底它们之间是什么关系呢?
think19:路过,谢谢,我也是看你的文章学过来的。
LK:买不买盗版软件这是人的思想境界问题,属于道德范畴里的;管住管不住是管理者的能力问题,能买到廉价的软件又有几个能用自己的行为规范自己去购买昂贵的软件呢?
ZackChen:星君,终于见到你更新博客了,最近很忙吧!我已经进入大学了,第一次担任班长,忙的不得了。
可惜最终我还是没有选择计算机专业,我现在读土木工程专业,大一课程很少,还有一些时间可以学习一些编程。第一次“背井离乡”,真想念一年前的生活......
shellex:在Linux下写C#...哎,虽然有Mono
文章分类
收藏
    相册
    技术之友
    ShellEx
    链接交换
    在君夜阳的世界
    星之链接
    Chinese Tea
    STUDIO社群
    北斗星君专栏(新)(RSS)
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 GCC for Win32开发环境介绍(1)收藏

    新一篇: GCC for Win32开发环境介绍(2) | 旧一篇: 《Dev-Cpp/MinGW32 环境介绍》改版初搞


    GCC for Win32开发环境介绍(1)


    第一章 在视窗操作系统下的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纳入其中了。

    总体来说,MinGWCygwinDjgpp各有特色,针对不同的应用场合,可以选择不同的移植版来满足需要。MinGW这个系列的移植,主要方向是让GCCWindows移植版能使用Win32API来编程。而Cygwin的目标是能让Unix-like下的程序代码在Windows下直接被编译。至于Djgpp,则是想让DOS下也能用上GCC
    所以,对于开发人员不同的需求。选择合适的移植版会让工作变得轻松而高效。


    本书的GCC


    我个人对GCC的移植版都非常喜欢。不论是MinGW还是Cygwin,亦或是Djgpp。在本书中,除了特殊说明以外,所述的内容适合所有这三种移植版。
    不过,考虑到现在在Windows下用的比较多的是MinGW系列。再加上MinGWCygwinDjgpp安装和使用更为简便。所以,建议读者学习时还是使用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社区去获得参考。


    第四节 脚踏两只船的Djgpp

    介绍


    Djgpp,是一个在纯Dos下的GCC移植版本。她使用一些软件将纯Dos设置成32位的环境,并运行由她编译出来的程序。总体来说,Djgpp并不是一个Windows的移植版。不过,她确实可以在Windows下运行。对于一些特殊应用。Djgpp是唯一适合的。


    获得与安装

    Djgpp,可以从Djgpp的官方网站上下载 http://www.delorie.com/djgpp/

    不过,这里Djgpp为用户做了更好多的安排。她为用户提供了一个定制安装的页面。
    您只需要在上面填写响应的内容,然后递交。她将会给你一份完整的安装方案。


    使用


    相对来说,Djgpp我并不是经常使用。所以,本文中在没有特殊说明情况下,不会使用Djgpp的。



    文外音:

    总体来说,这篇文章写的有些匆忙。所以可能有些地方有不足。所以,希望各位能够多多原谅批评和指教。下一章,我将介绍GCC for Win32IDE。同时,从这一章开始,我将向各位读者做一个小小的要求。那就是,希望你们能够将自己对这篇文章感到的不足告诉我,我将随时修改以发表的内容,以适合广大读者的要求。如果各位有什么想法或者意见,疑惑。希望您能到 http://blog.csdn.net/visioncat 上提出。



    STUDIO软件开发组(SDT)
    STUDIO Development Team
    北斗星君
    (黄庠魁)


    索引:
    GCC,Windows,MinGW,Cygwin,Djgpp,介绍,安装,配置

    发表于 @ 2006年05月07日 16:47:00|评论(loading...)|编辑

    新一篇: GCC for Win32开发环境介绍(2) | 旧一篇: 《Dev-Cpp/MinGW32 环境介绍》改版初搞

    评论

    #Mouthintree 发表于2006-05-13 21:12:00  IP: 220.166.240.*
    请教2个问题:
    (1)我下载了Mozilla Thunder Bird的源代码,要用什么环境才能看到源代码?因为我前面用了dot net 2003都没有看到源代码。
    (2)请问哪里能找到Bayesian Filtering Algorithm(贝叶斯过滤算法)的具体内容?因为我在网上搜了很长一段时间都没有找到贝叶斯过滤算法核心的东西,我想你可能知道某些搜索引擎搜不到的讨论这个算法原理或者源代码的地方。

    希望您能帮助我,谢谢!
    #Mouthintree 发表于2006-05-13 21:14:00  IP: 220.166.240.*
    哦~忘了点东西,我的EMAIL是:ykmdyx2001@163.com

    希望您能把解答发送到我的邮箱里,麻烦您了,谢谢!!!



    Mouthintree
    #Lee 发表于2006-05-19 09:17:00  IP: 10.22.61.*
    祝贺新版开篇!

    这是我能搜索到的唯一的中文GCC开发环境的介绍。期待更多的后续作品!
    #Lee 发表于2006-05-19 09:25:00  IP: 10.22.61.*
    看完之后有个小问题:Djgpp虽然不是你介绍的重点,但是既然已经提到了,还指出它适用于某些特殊的场合,能不能略举点例子呢?我对这个问题比较关系就是因为我们经常需要编写刺激呈现程序来做心理物理实验,为了达到足够的时间记录精度,也许需要Dos下程序运行时的那种系统独占性。
    #北斗星君 发表于2006-05-19 23:58:00  IP: 58.34.94.*
    谢谢楼上的意见,我将在一周内修改以上文章。

    Djgpp总体来说,并不完全是一个纯16位DOS编译器。同时也没有宣传中的那么好。

    我接触Djgpp只是当年是要用GCC研究一些操作系统知识。感觉,Djgpp对于需要底层操作的人来说是个不错的选择。

    最后,万分感谢楼上的意见。
    同时,也感谢Lee的赞扬。呵呵。
    #北斗星君 发表于2006-05-20 00:01:00  IP: 58.34.94.*
    如果你急需有关GCC的内容。本站上旧版的文章也可以作为参考查看的。希望能够对你有用。
    #北斗星君 发表于2006-05-23 21:46:00  IP: 58.34.90.*
    的确,是这样的。
    因为,MinGW只是GCC for win32的移植版中的一个而已。
    而,Dev-Cpp也只是一个IDE,严格来说,并不是工具支持这个IDE,只是工具支持他所用的编译器而已。

    而本系列文章要比原来的范围更广,所以不能总围绕在这个小范围中讲了。

    所以,原来那个系列的文章是这个系列文章的一个子集。
    #Shellex 发表于2006-05-23 17:31:00  IP: 219.159.98.*
    我发现,<GCC for Win32开发环境介绍(1)>没有了Dev-Cpp或者Mingw这样的字眼了yeah..
    #vvoody 发表于2006-06-26 13:49:00  IP: 61.172.104.*
    期待续篇
    #vvoody 发表于2006-07-03 21:57:00  IP: 61.172.105.*
    quake是Djgpp编译的?
    #北斗星君 发表于2006-07-04 10:28:00  IP: 58.34.89.*
    quake是游戏引擎吧。我对游戏不太了解的。
    如果,你说是在DOS下的quake(我不知道有没有,因为没接触过游戏),那么也许是拿Djgpp写的。

    因为,我从几个方面得出以上结论。因为我看到quake有很多32位的版本,那么quake的公司应该不会为DOS专门开发一套。所以,我想可能是Djgpp编译的。

    希望我的回答能让你满意。谢谢。
    #vanish 发表于2006-07-05 17:37:00  IP: 61.150.43.*
    楼主是否有cygwin开发的资料啊!
    如果有的话能不能发给我,我的邮箱是:vanish2@126.com
    在此先谢过了:)
    #北斗星君 发表于2006-07-05 18:50:00  IP: 58.34.95.*
    非常不好意思,Cygwin其实是一个模拟Linux环境。
    所以,Cygwin的开发资料并不存在。

    而且,好像Cygwin的中文资料也很少。不过,你可以通过看Linux的资料来获得你所要的功能。

    基本上,Linux环境下的资料,对Cygwin还能算适合的。

    谢谢,希望我的回答能让你满意。
    Good Luck
    #拉拉是头猪 发表于2006-07-06 16:14:00  IP: 210.21.222.*
    非常感谢你的文章。
    刚刚参照你的文章安装完,先说声谢谢了。
    不过要提点意见,呵呵:
    比如:
    win32api win32的API函数头文件和连接库
    这里如果写成 w32api-3.3.tar.gz 或许会更好一些。
    我刚开始安装的时候一看那么多目录那么多文件,
    要下哪一个啊?就开始晕了,如果能写清楚一点也许会更好。
    #北斗星君 发表于2006-07-06 18:52:00  IP: 58.34.82.*
    你好,拉拉是头猪。

    觉得你的名字很好玩,因为我以前高中时有个英语老师的外号就是这个。

    其实,开始我是准备说,下w32api-3.3.tar.gz这个文件。可是,我怕如果以后更新的话,可能会造成别人的不理解。所以,这里就省去了这个版本好。


    对于给您造成的不便,感到抱歉。

    星君上
    #SmartAI 发表于2007-07-18 15:17:51  IP: 220.249.88.*
    Good 受益非浅 谢了先 学习中……
    #北斗星君 发表于2007-07-20 10:34:10  IP: 58.34.253.*
    SmartAI 过奖过奖。
    #bitsun 发表于2007-07-23 21:37:28  IP: 212.201.75.*
    很喜欢,轻松的笔调。我一般在windows下写程序,但其实基本不用到mfc或者windows api,所以一直想转移到gcc,mingw正好给我一个先在windows下实验的机会,不错。mingw的官网也没有如此入门级别的介绍,
    #北斗星君 发表于2007-07-24 00:38:31  IP: 61.170.220.*
    bitsun 真是太过奖了。
    不过我这并不只是介绍MinGW。而是介绍一个以GCC的Windows移植版为核心的,可以以低廉的代价合法获得的开发环境。

    当然,侧重MinGW只是一个巧合而已。因为,在Windows下的GCC中,比较知名的还是MinGW。相对Cygwin来说,MinGW更小巧也更类似于Win32程序员所使用的VC编译系统。

    最后感谢您以及各位的支持。我会更加努力的继续写出这系列的文章的。你们的支持是我最大的动力。

    星君上
    #独霸 发表于2007-07-30 11:41:42  IP: 61.178.82.*
    星君,我想按第一种方案安装MinGw,可是在Sourceforge上却找不到Gdb!
    #Zack 发表于2007-07-30 12:09:33  IP: 124.160.120.*
    点击MSYS下的
    View older releases in the Snapshot package »
    链接就可以找到了
    #北斗星君 发表于2007-07-30 17:32:46  IP: 61.170.223.*
    呵呵,感谢楼上 Zack 的回答。
    的确,因为GDB貌似MinGW很久没更新了。所以SF将其列为老的文件了。

    希望我来的不算晚。
    #maersi111 发表于2007-08-05 15:50:11  IP: 159.226.115.*
    一直想要这样的关于Gcc在Windows下使用的文章,看来是我搜索得不仔细,如此佳作现在才看到!读了受益良多。向星君致意!

    噢,想到一个问题,请问是不是安装了Cygwin(我是自己选组件安装的,装出来4、5百兆呢,还只是选了一部分组件,印象中MinGW的内容是装了的),就相当于拥有了MinGW的所有功能啊?MinGW完全包含在Cygwin系统中,这句话有错吗?

    谢谢!
    #北斗星君 发表于2007-08-05 22:32:18  IP: 58.34.94.*
    是的,MinGW 作为 Cygwin 的 GCC 依赖包被包含了。

    但是 Cygwin 是一个命令环境的模拟,MinGW 是一个编译环境。

    最后谢谢楼上的赞扬。
    #maersi111 发表于2007-08-07 12:12:31  IP: 159.226.115.*
    星君的解释真是一语中的,讲的很清楚啊,
    佩服佩服!
    #勿蕴 发表于2008-05-02 08:15:52  IP: 60.175.217.*
    我想问一下,别的有的提到编译器的配置是怎么回事?你说的是直接解压就可以了,不配置了吗?
    在http://www.mingw.org/MinGWiki/index.php/Install%20MinGW
    这里也提到安装MinGW,解压后说要在控制台执行命令,都是做什么的?
    还有对于系统变量的更改,看到一篇是这样的该的,不仅仅添加了Bin目录:
    MINGW_PATH=X:\MinGW\bin
    C_INCLUDE_PATH=%MINGW_PATH%\include;%MINGW_PATH%\lib\gcc\mingw32\3.4.5\include
    CPLUS_INCLUDE_PATH=%MINGW_PATH%\include\c++\3.4.5;%MINGW_PATH%\include\c++\3.4.5\mingw32;%MINGW_PATH%\include\c++\3.4.5\backward;%C_INCLUDE_PATH%
    LIBRARY_PATH=%MINGW_PATH%\lib;%MINGW_PATH%\lib\gcc\mingw32\3.4.5
    PATH=%MINGW_PATH%\bin;%MINGW_PATH%\libexec\gcc\mingw32\3.4.5

    --------------------------------------------------------

    具体的都有什么用啊,必须这样做吗?
    能不能麻烦你说清楚一点,谢谢啊!
    #北斗星君 发表于2008-05-02 21:26:32  IP: 61.170.220.*
    其实没多大关系的,那些设置只是确保在windows下能直接使用 gcc 这类命令而已。在实际应用中没有太大的关系。
    #chenhao 发表于2008-07-15 09:57:05  IP: 58.55.56.*
    用dev c++编译代码时出现如下错误:
    error You must link against multi-threaded libraries when using ACE (check your project settings)
    2008-07-15 21:00:26作者回复
    提示你使用多线程库,至于具体哪个线程库我就不太清楚了。
    #1ya1yayao 发表于2008-11-12 00:19:50  IP: 222.206.201.*
    弱弱的问一下北斗星君,g95-MINgw是个什么东西呢?
    我在用cygwin运行fvcom时要用到g95编译器,cygwin安装时那个make工具包藏的很深,我安装完cygwin后总是不能make,提示command not found ,而g95-mingw这款软件包含了make。那到底它们之间是什么关系呢?
    2008-11-29 14:44:06作者回复
    是这样的,在cygwin的安装中。必须手动在devel中选择安装make和其他的开发工具。这样才能让cygwin正常工作。cygwin并不像mingw是专为编写程序开发的。所以默认情况下是不安装开发工具的。 很抱歉,前些日在太忙了。忽略了这里。
    发表评论  


    登录
    Csdn Blog version 3.1a
    Copyright © 北斗星君