在tc2.0下面搭建最小的编译、连接环境

    在这里,我们使用tc2.0提供的编译程序对程序进行编译连接,tc2.0提供的编译程序生成的代码是运行于8086PC模式的代码,因为在8086PC模式下,我们可以很容易体验c语言的一些底层开发。tc2.0所说很少人在用了,麻雀虽小五脏俱全,使我们从底层学习c,研究c的好编译器,为了更好的研究c,我们用其最小的工具来研究,即用到什么文件,我们就取其什么文件,用不到的我们暂且不去过问,下面我们首先将tc2.0的最小编译、连接环境搭建出来,以便于今后的研究。

  首先我们从网上下载一个tc2.0,取出其中的tcc.exe拷贝到c:\c文件夹下

调试下面的a.c小程序:

 

int main(void)

{

  int a=0;

  printf("hello world!\n");

}

   为了便于区分main函数,故在此加了一个a=0;

     使用tcc  a.c对上面的调试代码进行编译、连接;发现会抛出下面的错误!

   C:\c>tcc a.c
     Turbo C  Version 2.0  Copyright (c) 1987, 1988 Borland International
     a.c:
     Warning a.c 5: 'a' is assigned a value which is never used in function main
     Error 5: Unable to execute command 'tlink.exe'

   警告我们在此先不去过问,那是我们的int类型的a变量未曾使用的警告,无法执行命令tlink.exe,也就是说我们的这个最小的编译、连接环境是需要tlink.exe,所以我们下一步就将此文件拷贝到我们的目录中来,再次进行tcc a.c;

  C:\c>tcc a.c Turbo C  Version 2.0  Copyright (c) 1987, 1988 Borland International

       a.c:

       arning a.c 5: 'a' is assigned a value which is never used in function main Turbo Link  Version 2.0  Copyright (c) 1987, 1988 Borl nternational 

       c0s.obj : unable to open file

        “c0s.obj : unable to open file”提示不能够打开c0s.obj文件,所以在这里我猜测c0s.obj文件也是我们最小环境中不可缺少的文件,在tc2.0文件中找到此文件,将其拷贝到我们的当前目录下,再次进行tcc  a.c;

  C:\c>tcc a.c
     Turbo C  Version 2.0  Copyright (c) 1987, 1988 Borland International

     a.c:
     Warning a.c 5: 'a' is assigned a value which is never used in function main
     Turbo Link  Version 2.0  Copyright (c) 1987, 1988 Borland International
     emu.lib : unable to open file

    "emu.lib : unable to open file"提示不能打开emu.lib文件,故我们将emu.lib文件也添加到我们的目录中来,再次进行tcc a.c

  C:\c>tcc a.c
     Turbo C  Version 2.0  Copyright (c) 1987, 1988 Borland International
     a.c:
     Warning a.c 5: 'a' is assigned a value which is never used in function main
     Turbo Link  Version 2.0  Copyright (c) 1987, 1988 Borland International

     maths.lib : unable to open file

  "maths.lib : unable to open file"提示不能打开maths.lib文件,同样我们将其添加到我们的目录中来,进行tcc a.c查找下一个缺少的文件;

  C:\c>tcc a.c
    Turbo C  Version 2.0  Copyright (c) 1987, 1988 Borland International
    a.c:
    Warning a.c 5: 'a' is assigned a value which is never used in function main
    Turbo Link  Version 2.0  Copyright (c) 1987, 1988 Borland International
    cs.lib : unable to open file

    "cs.lib : unable to open file"bu不能够打开cs.lib文件,将其添加进来,同样执行tcc a.c进行下一个文件的查找;

     C:\c>tcc a.c
     Turbo C  Version 2.0  Copyright (c) 1987, 1988 Borland International
     a.c:
     Warning a.c 5: 'a' is assigned a value which is never used in function main
     Turbo Link  Version 2.0  Copyright (c) 1987, 1988 Borland International

   通过上面的提示可知,没有了错误,已经生成了可执行的文件,输入a进行观察此文件是否可执行:

     C:\c>a
     hello world!

     到这里我们先后已经找到了tlink.exe、c0s.obj、emu.lib、maths.lib、cs.lib共五个文件,此时我们的编译、连接的最小环境就已经搭建完好了,就可以进行下阶段的深一阶段的学习研究了。

  

 

 

转载于:https://www.cnblogs.com/imwgy/p/3353330.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值