把 Borland Turbo c 的源代码移植到GNU gcc
内容
TurboC 的大概内容
TurboC为何而生??
其他方法(Alternate Approaches, 不知道是不是这样翻译)
TurboC的特点与不足
下载和安装TurboC
未来的计划
为什么要用这么可爱的logo呢?
TurboC的大概内容
TurboC是一个可连接的库同时也是一大堆C语言的头文件,是为了更容易地在GNU gcc,也就是在类Unix系统上,编译那些用原来在Turbo C编译器编译的MS-DOS系统的C语言的源文件,概括如下:
通过Turbo C的conio.x里的ncurses的实现
通过Turbo C的graphics.h里的Xlib的实现
一些其他的函数和为了方便的节省时间的特征
一种克服了Turbo C和GUN gcc的整型数据类型差异的方法
但不管怎么说,这也不是一个完美的解决方案,但是你会发现它还是有用的.你可以在它相关的早期的发展阶段找到graphics.h的帮助.
TurboC遵于GNU的LGPL协议(Lesser General Public License).
TurboC为何而生??
我写过很多基于MS-DOS的用Borland公司的Turbo C 2.0编译器编译的程序.当由于爱好的原因,我想把其中一些代码以自由软件的形式存在,我便想到了把这些代码发布在GPL下,是MS-DOS的代码,慢慢的把它们转换成类Unix系统的代码.很明显,预先直接的去转换(MS-DOS--> *nix)是一件很耗时的工作.而且渐渐的,我遇到了困难,因为发布一个别人无法理解其源代码的的软件并不是一件好事.而我最喜欢的发布开源的频道fleshmeat不"吃"MS-DOS,因此它很文雅的拒绝了我的MS-DOS项目.
很显然,现在的需要是更底层的,然后我就想到了我可以提供合适兼容的Turbo C的库和头文件,这样,把Turbo C的源码引到类Unix系统就会简单得多.也就是说,提供旧版本的MS-DOS的类Unix版本是一件相对容易很多的事情.但究竟这个容易去到哪儿,跟你要引进的程序的很多东西都有关.
其他方法(Alternate Approaches, 不知道是不是这样翻译)
对于conio.h的功能,你可以考虑使用pablo Vidal的UConio的库来代替.但是我没有使用过,所以无法说出其好长与不足,不过它肯定提供比TurboC提供一个少得多的Conio的功能的子集.而且它也会要求你更大范围的修改你的源代码.
Borland公司已经有了(或许会提供)一个Linux版本的C++编译器,这样的话,它的nature,价格和这个编译器的目标工作平台将是一个谜.一种假设(象Kylix)就是它将基于wine的,所以它只可以工作在x86的系统上面.但是,如果它包括了在TurboC上实现的库,那样,老实说,他提供了一种更简单的的方法来把你Turbo C的源代码引入到Linux上,但如果这样的话,它将会是非常庞大的.对我自己来说,尽管已经是一个很久的borland公司的用户了,但我还是非常希望用GNU gcc来编译我的程序.
对于graphics.h的功能,有一个Csaba Biegl, Michael Goffioul, and Hartmut Schirmer的GRX库.直到graphics.h的功能还有一点还没写完的时候,我才发现了这个库,因此我还没来得及很充分的测试它.它的目标是要成为一个多平台的2D图像库.它的官网没有宣传(甚至没有提到)与Turbo C的兼容性.然而,它只包括了非常少量的与Turbo C同名(当然还有相同功能)的功能.
当然,如果你只是感兴趣在类Unix系统上运行你的程序,同时也反对把其他程序引到类Unix系统上,那你也可以在linux版本的DOS emulators 下运行你已经存在的程序.DOS emulation使用了 dosemu 和 freedos ,在x86系统上工作得非常好,同时 bochs 和 freedos在非x86类Unix系统上工作的也不错(但可能有点慢).
TurboC的特点与不足
特点
TurboC 提供了Turbo C的conio.h头文件控制台的大部分功能,与相关的ncurses的功能一一对应.(当然,除了scanf之外的conio.h的功能都有提供)
TurboC提供了Turbo C的graphics.h头文件"BGI"的大部分功能.到目前为止(2002 06 08),除了临时缺乏stroked-font的支持,这些特点的实现已经完成的很彻底了.
TurboC提供了这些丢失的功能诸如strupr和strlwr的功能的很少的东西,
请确认可提供的方法的完整列表:
不足
请参考bugs和issues的完整列表.到目前为止,这个库文件只是我在特定的我写的Turbo C的程序所需要的那么完整,随着我引入的我以前的程序到类Unix 系统的多起来,TurboC的库大概才会愈来愈完整.到目前为止,本质上conio.h的支持已经完整了,除了显示文本外,graphics.h的支持也本质上完整了.
在已经引进的程序里,除非你使用了xterm,要不然文本控制台的窗口指挥逻辑上自动调好尺寸,并不会physically地去调整.如果你用了诸如KDE控制台之类的其他控制台,用户必须人为地去调整了.
Borland的Turbo C是16位的编译器,但是我目标的GNU gcc编译器是32位的,结果产生了整型的数据类型的差异.TurboC用宏的方法处理了(但愿)更普遍的情况.没有处理的情况会在编译的时候报错,用户必须手动去修改.在用户的页面会被详细介绍.
用基于诸如 getcha, cprintf或其他的控制台来混合基于流的功能(如 getchar, printf,其他),很可能会不工作.你也可以浏览usage page.
下载并安装TurboC
下载源代码
*Most-current development code (20040218) TurboC-dev.tar.gz
20020602 snapshot TurboC-20020602.tar.gz
20020419 snapshot TurboC-20020419.tar.gz
20020418 snapshot TurboC-20020418.tar.gz
20020323 snapshot TurboC-20020323.tar.gz
20020317 snapshot TurboC-20020317.tar.gz
20020312 snapshot TurboC-20020312.tar.gz
tarball里包括了一个教TurboC-source的文件夹,你可以简单的在这个目录下用make来编译库.但必须是GNU gcc或者用gmake(例如在FreeBSD或Mac下)来编译(提示,在FreeGSD下,你要编辑makefile和注释/反注释开头的若干行,你会很容易看到的),我已经检验了最近释出的snapshot(不是开发者的snapshot)并在以下系统测试了程序:
Linux Intel 'x86 (SuSE 8.0)
Linux PowerPC (SuSE 7.3)
FreeBSD (4.5)
(早期的TurboC的库好像在FreeBSD上工作的效果不怎么好,请升级到20020420的版本,并且在运行引入的程序的时候按照下面的步骤).最近释出的snapshot只在SuSE8.2上测试过.
把这个库(libTurboC.a and libTurboCu.a)放在你系统放库的地方--通常在 /usr/lib.把所有的头文件放到它应该放的地方--通常是 /usr/include.又或者,你也可以添加它们的链接到这些目录.又或者,把它们放到你喜欢的地方,然后在gcc里用参数 -L和-I来连接它们.
在我的系统,我是这么做的.
cd ~
tar -xzvf TurboC-dev.tar.gz
cd TurboC-source
... 编辑FreeBSD的makefile ...
make (or gmake)
su
ln -s *.h /usr/include
ln -s libTurboC.a /usr/lib
exit
你会发现(例如,在FreeBSD)如果你在你引入的程序力#include了TurboC的头文件,你的编译器会报错:标识符链接太深(symbolic links being "too deep").如果是这样的话,你可以把上边的ln命令的参数"-s"去掉.
另外,编译Makefile当然会假定X-window系统的头文件和库;如果这个假定是错的话,你就要你的编译器加上参数"-L"和/或者"-I"来调整.X-window系统必须编译全部的库,或者你要运行你的程序,如果你要用到graphics.h的功能.如果你不打算使用这些功能,你可以通过编辑Makefile和去掉编译器参数的"-DWITH_X"在没有X的系统上引入和编译你的程序.
未来的计划
嗯,很明显这种项目是没什么前途的,它的计划只不过是从一个古老的编译器里引入它的代码.然而,我还是会在我这个项目里根据需要增加一些特性的.我不会浪费精力去写一些没有在我Turbo C程序力出现过的功能的,但如果你自己已经写了而又告诉了我,我是很乐意加进去的(把荣辱加给你).
当然,很希望你能把TurboC的bug返回给我,(当然在这之前,去看看Buglist有没有这个问题),我会尽力去改正它们的.
为什么要用这么可爱的logo呢?
这是一幅姐妹在谈话的图片,画家Lynn Rothan的杰作.我试图表达的意思是,它表现了很相似的c编译器 Borland Turbo C和GUN gcc的关系.当然拉,lynn有他自己的意思.请参考他的网站.
分享到:
相关推荐
3. **快速编译**:Borland Turbo C的编译器以其快速著称,能够在极短的时间内将源代码转换成可执行文件,这在当时是非常先进的技术。 4. **图形库(CGA/EGA/VGA)**:Turbo C 2.0包含了对当时常见图形适配器的支持...
《Borland Turbo C 全集 1.0-2.0》是编程历史上的一部经典,它在80年代末90年代初为无数程序员提供了学习和开发C语言的平台。这一全集包含了Borland公司发布的多个版本,包括Turbo C 1.0、1.5、2.0和2.01,每个版本...
1. Borland Turbo C IDE:Borland Turbo C不仅仅是一个编译器,它是一个完整的集成开发环境,包括源代码编辑器、编译器、链接器、调试器等工具,为程序员提供了一个统一的工作平台。 2. C语言:C语言是一种基础且...
Turbo Pascal 6.0是一款经典的Pascal编程语言编译器,由Borland公司在1980年代末至1990年代初推出。这款编译器以其快速的编译速度和高效的代码生成而闻名,对当时的软件开发领域产生了深远的影响。源码是软件开发的...
《Borland Turbo C 3.0:经典编程时代的里程碑》 Borland Turbo C 3.0,这个名字对于许多老一辈的程序员来说,无疑是一段珍贵的记忆。这款由Borland公司推出的C语言集成开发环境(IDE),在1980年代末到1990年代初...
2. `MSSRC.ARC`:可能包含了Microsoft源代码示例或者库,帮助用户理解和学习如何在Borland Turbo Basic中使用微软的API。 3. `TRIVED.BAS`:这可能是Turbo Basic的编辑器或IDE的一部分,或者是与之相关的工具或脚本...
中文名: Turbo C 英文名: Turbo C(2.00/3.00)_install disk 发行时间: 1989年 制作发行: Borland International, Inc.地区: 美国 Turbo C 按安装分类大概有两种版本:一是通过install安装,原汁原味,而且不存在...
Turbo Pascal 6是一款历史悠久的 Pascal 语言编译器,由 Borland 公司在1987年发布。它以其高效、快速的编译能力和友好的集成开发环境(IDE)而受到程序员的喜爱。源代码的公开对于学习编译原理、理解编程语言实现...
**博朗(Borland)Turbo Prolog全集** 博朗(Borland)是一家在个人计算机软件开发工具领域享有盛誉的公司,尤其以其快速编译器技术闻名。Turbo Prolog是Borland推出的一款专业逻辑编程语言产品,它结合了高效的...
Turbo C++是一个Borland C++编译器与IDE。最早的Turbo C++ 产品系列出现在1993年以后,以及于2006年重新发行,具有一个互动的IDE,本质上源自他们的旗舰产品C++ Builder的降级版本。Turbo C++ 2006则发布于2006年9月...
Turbo C 是一款经典的C语言编译器,由Borland公司于上世纪80年代末推出,主要用于DOS操作系统。这款编译器因其小巧、高效、易于使用的特点,在初学者和专业程序员之间广受欢迎,尤其在中国,它曾是很多C语言学习者的...
【标题】"文件列目录 TURBOC语言源代码.zip_turboc_zip"指的是一个包含TURBOC编程语言源代码的压缩文件。TURBOC是Borland公司开发的一款早期的C编译器,它在80年代末90年代初广泛应用于个人计算机上的C语言编程,...
9. **移植代码**:如果你想将使用TurboC2编写的代码迁移到其他C编译器(如GCC或Visual Studio),可能需要进行一些修改以适应新的编译环境。 10. **学习资源**:虽然TurboC2已经过时,但网上仍能找到许多关于如何...
学习PSiCC2用。解压到硬盘,然后运行INSTALL.EXE并遵照它的安装提示即可。建议把Turbo C++1.01工具套件安装在目录C:\tools\tcpp101\这样可以直接使用PSiCC2所提供的项目文件和MAKE 文件。
1. **Borland公司**:Borland是一家历史悠久的软件开发公司,以其开发的Turbo系列编译器闻名,如Turbo Pascal和Turbo C++,它们在个人计算机时代对编程语言的普及起到了关键作用。 2. **Turbo C++ 3.0**:这个版本...
1. **源代码级调试**:允许程序员在源代码中设置断点,当程序执行到断点处时暂停,以便检查变量的状态、单步执行代码或更改变量值。这极大地提高了调试效率,使得程序员能够更精确地定位和修复问题。 2. **内存查看...
Borland Turbo C 4.5 For Win 完全, 可安装
【坦克大战C语言源代码】是一款基于Borland开发环境的经典游戏程序,它展示了C语言在游戏编程中的应用。此项目包含坦克大战游戏的所有源代码,开发者可以借此深入理解游戏逻辑、图形绘制以及用户交互等核心概念。 1...
Borland公司是计算机软件开发工具的重要供应商,其在80年代和90年代初期推出的一款经典C语言编译器——Turbo C,成为了许多程序员入门C语言的首选工具。这款编译器以其高效、便捷和对DOS环境的良好支持而闻名。 ...
Borland Turbo C 4.5 For Win 可安装 共三部分 3