| 查看: 3248 | 回复: 13 | |||
| 【奖励】 本帖被评价8次,作者woshilsh增加金币 7 个 | |||
| 当前主题已经存档。 | |||
[资源]
【分享】下载编译器的地方
|
|||
|
最全编译器下载(点击进入) 今天写程序的时候,要看源代码,只好用人家用的编译器,嘿嘿,这里有好多啊! 我就懒得下载上传了,干脆分享这个地址,大家自己下去! 感觉不错的话,顶下啊! 我下了个Borland c++ Compiler 蛮好用的,呵呵,免费的还,不错! 内容包括:(很多其他的就懒得写了,自己看去) 3rdRail Downloads All-Access Client Downloads Blackfish SQL Downloads C++Builder Downloads Change Manager Downloads DB Optimizer Downloads DBArtisan Downloads Delphi Downloads Delphi Prism Downloads Delphi for PHP Downloads EA/Studio Downloads ER/Studio Downloads ER/Studio Enterprise Portal Downloads InterBase Downloads J Optimizer Downloads JBuilder Downloads Performance Center Downloads RAD Studio Downloads Rapid SQL Downloads Schema Examiner Downloads Turbo Pascal Downloads [ Last edited by woshilsh on 2009-6-30 at 21:25 ] |
» 猜你喜欢
三甲基碘化亚砜的氧化反应
已经有4人回复
请问下大家为什么这个铃木偶联几乎不反应呢
已经有5人回复
请问有评职称,把科研教学业绩算分排序的高校吗
已经有5人回复
孩子确诊有中度注意力缺陷
已经有12人回复
2025冷门绝学什么时候出结果
已经有3人回复
天津工业大学郑柳春团队欢迎化学化工、高分子化学或有机合成方向的博士生和硕士生加入
已经有4人回复
康复大学泰山学者周祺惠团队招收博士研究生
已经有6人回复
AI论文写作工具:是科研加速器还是学术作弊器?
已经有3人回复
论文投稿,期刊推荐
已经有4人回复
硕士和导师闹得不愉快
已经有13人回复
2楼2009-06-30 21:33:56
★ ★
rjjy(金币+2,VIP+0):学习一下! 6-30 23:58
rjjy(金币+2,VIP+0):学习一下! 6-30 23:58
|
使用过程中找到点好东西,分享下 我总是鼓励 C/C++ 的学习者,在刚接触这个程式语言的时候,先以 console mode(DOS-like)程式为目标。换言之,不要一开始就想写 GUI 程式、想开视窗、想有眩目亮丽的画面 -- 那只是未走先飞,揠苗助长罢了。 所谓 console 程式,就是文字模式的程式,我们可以在其中好好把 C/C++ 的语言根基练好,而不会分心於其他暂无必要的 GUI 枝节上。 我一直以为,这是理所当然的事情,却也一直发现,有不少大专院校的大一 C/C++ 课程,同学们必须写个小作家、小画家、小算盘┅做为期中或期末作业。 果然世界不能大同,各人看法殊异 ![]() 我不但认为 C/C++ 程式开发对象初期要以 console mode 为主,我也认为,C/C++ 的程式开发环境,初期也要以 console mode 为主。换言之,不要一开始就进入整合环境(IDE)。整合环境中那麽多视窗、那麽多功能、那麽多预设值,会让程式新手眼花撩乱,无法掌握程式编译过程中一些有价值的知识与经验。 等我们对编译程序有了起码的了解,再来使用整合环境,我认为这才最好。 所以不论在 <深入浅出 MFC> 或 <多型与虚拟> 书籍中,我都会简述console mode 下的作业方式。<深入浅出 MFC> 在 p.224 列出,<多型与虚拟> 在 p.233 列出。 但仍然偶而会收到网友(不论是否上两本书的读者)的询问,询问console mode 的编译方式,或询问他们所遭遇的问题。 我再次整理这个题目。再有类似问题,我就可以整篇 mail 给发问者了。 ★★ 注意:以下适合 PC 环境 ★★ ●C/C++ 编译器需要的环境变数设定 古早以来,PC 上的 C 编译器,就需要两个环境变数: LIB:这个环境变数告诉编译器说,必要的 libraries 在哪里(哪个磁碟目录下) INCLUDE:告诉编译器说,必要的 header files 在哪里(哪个磁碟目录下) 另外,为了让我们能够在任何 working directory 都叫得到编译器,当然我们必须设定 PATH。 从古早以来,一直到现在,C/C++ 编译器都需要这三个环境变数。 ●以 Visual C++ 为例 以 Visual C++ 为例,如果安装後的档案布局如下: C:\MSDEV\VC98\BIN : 这里放有编译器 CL.EXE C:\MSDEV\VC98\INCLUDE : 这里放有 C/C++ header files C:\MSDEV\VC98\LIB : 这里放有 C/C++ standard libraries 那麽你可以写一个批次档如下: set PATH=C:\MSDEV\VC98\BIN;C:\MSDEV\COMMON\MSDEV98\BIN set INCLUDE=C:\MSDEV\VC98\INCLUDE set LIB=C:\MSDEV\VC98\LIB 之所以需要另外设定 PATH=C:\MSDEV\COMMON\MSDEV98\BIN,是因为编译器 CL.EXE 执行时需要 MSPDB60.DLL,而它被安装於 C:\MSDEV\COMMON\MSDEV98\BIN 之中。 如果你写的程式不只是单纯的 C/C++ 程式,还用到了 MFC,一样可以在 console mode 下编译,这时候你的环境变数应该如此设定: set PATH=C:\MSDEV\VC98\BIN;C:\MSDEV\COMMON\MSDEV98\BIN set INCLUDE=C:\MSDEV\VC98\INCLUDE;C:\MSDEV\VC98\MFC\INCLUDE set LIB=C:\MSDEV\VC98\LIB;C:\MSDEV\VC98\MFC\LIB 多指定了 MFC\INCLUDE 和 MFC\LIB,就可以让编译器和联结器找到 MFC 的 header files 和 libraries。如果你还需要用到 ATL,就得在 INCLUDE 环境变数中再加上 C:\MSDEV\VC98\ATL\INCLUDE。 ●以 Borland C++Builder 为例 以 Borland C++Builder 为例,如果安装後的档案布局如下: C:\BORLAND\CBuilder3\BIN : 这里放有编译器 BCC32.EXE C:\BORLAND\CBuilder3\INCLUDE : 这里放有 C/C++ header files C:\BORLAND\CBuilder3\LIB : 这里放有 C/C++ standard libraries 那麽你可以写一个批次档如下: set PATH=C:\BORLAND\CBuilder3\BIN set INCLUDE=C:\BORLAND\CBuilder3\INCLUDE set LIB=C:\BORLAND\CBuilder3\LIB ●如何在 console 中编译 C/C++ 程式 首先,开启一个 DOS Box(DOS Prompt, DOS VM),然後在该 DOS box 中执行上述写好的批次档,完成环境变数的设定。你可以再在 DOS 提示号下键入 set 命令,看看环境变数的设定内容正确与否。 然後就可以直接在 DOS 提示号下键入编译器名称,开始编译了。如果你使用 Visual C++,就这麽做: C:\> CL test.cpp 如果你使用 C++Builder,就这麽做: C:\> BCC32 test.cpp 至於特殊情况下需要什麽特殊的 options,就必须自己查一下啦。只要执行 CL /? 或 BCC32(其後不加任何引数),便可看到所有的 compile options。 ●编译器与联结器的关系 早期的编译过程与联结过程是分开的。换句话说我们必须做两个动作: C:\> Cl test.cpp C:\> LINK test.obj xxx (xxx 代表各个必要的 libraries) 或是: C:\> BCC32 test.cpp C:\> TLINK32 test.obj xxx (xxx 代表各个必要的 libraries) 如今的编译过程与联结过程当然还是分开的,但是我们的动作只需一个: C:\> CL test.cpp 或是: C:\> BCC32 test.cpp 这是因为编译器变聪明了,除非你指定 /c option(表示只编译不联结),否则它便自动为你呼叫联结器进行联结动作。过去以来颇令 programmer烦恼的「该使用哪些 libraries」的问题,编译器也有了聪明的解决方案:它将程式中用到的 library functions 记录起来,同时也录下它们所属的library 名称,於是联结器就可以从这个表格中知道要联结哪些 libraries 了。 ●环境变数与 DOS VM(Virtual Machine)的关系 你可以同时开起多个 DOS Box,但是你不能够在某个 DOS Box 中执行上述批次档而在另一个 DOS VM 中享受其环境设定。 这是因为每个 DOS Box 都是一个 Virtual Machine,彼此谁也看不到谁,互不相干。 除非你在 autoexec.bat 中就设定好上述那些环境变数。这麽一来,任何一个新开启的 DOS VM 便会因为继承最原始的 DOS VM 环境,而继承了那些变数设定。 ●环境空间(environment space)不足 最易造成大家困扰的,就是环境空间(environment space)不足的问题。 当你安装好 Visual C++,会在其 BIN 子目录中发现一个名为 VCVARS32.BAT 的档案。这个档案其实就是做上述的环境变数设定动作(这在 Visual C++ 安装过程的最後一个步骤有说明。哎,有多少人安装软体不看说明!)。所以,你可以在任何 DOS Box 中执行此档,取代前述我们自己的批次档。 但是通常大家都有失败的经验,得到 "Out of environment space" 的错误讯息。这是因为 VCVARS32.BAT 使用以下句法: set INCLUDE=%MSVCDir%\ATL\INCLUDE;%MSVCDir%\INCLUDE;%MSVCDir%\MFC\INCLUDE;%INCLUDE% set LIB=%MSVCDir%\LIB;%MSVCDir%\MFC\LIB;%LIB% 意思是把 INCLUDE 的原始设定(%INCLUDE%)再附加其他设定,并把LIB 的原始设定(%LIB%)再附加其他设定。如果原始设定已经很长,多来这麽几次,便 "Out of environment space" 啦! 做法之一是调高环境空间的大小。请在 c:\config.sys 档中加上这行: shell=C:\COMMAND.COM C:\ /E:1024 /P 其中 /E:1024 便是表示将环境空间调为 1024 bytes。(不够?再调) 做法之二是不要使用 VCVARS32.BAT 的那种「附加」句型,改用前述我们自己的批次档。要知道,我们可能有好几个编译器环境(VC、BCB、G++ ┅),需要轮番测试我们的程式;如果使用「附加」句型,多来几次,再大的环境空间也会消磨殆尽。 方法一和方法二要双管齐下唷。 ●有任何规模上的限制吗? 使用 console 模式(或称 command line 模式)来编译联结程式,程式的大小可否有任何规模上的限制?答案是没有! 它的缺点是没有工具帮你管理档案、没有预设值让你少打几个字、没有分析工具帮你整理 objects,让你浏览 objects、symbols┅。所以一旦你基本功学会了,要开始中大型程式的设计,当然以整合环境(IDE)为佳。 ●不要误会 我这不是开倒车,要大家回到茹毛饮血的时代,都回头去做山顶洞人。而是我觉得,对於一位 C/C++ 初学者,整合环境(IDE)的运用恐怕带来一头雾水,不如先在 console mode 下作业。一方面多认识一些环境设定方面的常识,满好的,一方面比较方便好用,也不必写个 1000 行的小小练习还得启动 五五加农炮,一方面求知的力量可以全部放在语言的练习上头。 等有了一定的程度,再使用整合环境,就不会如坠五里雾了。 |
3楼2009-06-30 21:52:08
★
wangen994(金币+1,VIP+0):感谢你的参与讨论 7-1 18:40
wangen994(金币+1,VIP+0):感谢你的参与讨论 7-1 18:40
| dev c++ 和 GCC for windows(ftp://ftp.equation.com/gcc/gcc-4.4.0-32.exe)都挺好 |
5楼2009-07-01 15:14:00
7楼2009-07-05 18:32:30
8楼2009-08-03 20:20:47
10楼2009-08-20 20:26:27
11楼2009-09-17 08:20:00
nono2009
超级版主 (文学泰斗)
-

专家经验: +21105 - 应助: 28684 (院士)
- 贵宾: 513.911
- 金币: 2555140
- 帖子: 1602243
- 在线: 65200.8小时
- 虫号: 827383
13楼2009-09-27 21:51:12
14楼2009-10-11 21:00:33
简单回复
2009-07-01 08:10
回复

ry99256楼
2009-07-02 14:38
回复
谢谢分享
tengyu9楼
2009-08-07 20:53
回复



ghfan12楼
2009-09-27 20:56
回复















回复此楼
