原程序文件(.c文件)需要进行编译、连接两个步骤生成exe文件,多个obj文件中的代码可以存储在一个lib文件中,一个exe文件中可能包含来自多个obj文件和lib文件中的代码。

对于tc2.0开发环境,cs.lib、emu.lib、maths.lib等lib文件中存储着C语言库函数的代码,比如printf、getch等C语言提供的库函数都在cs.lib中存储,所以可以直接调用printf(),而不用编写printf()的实现代码。

首先tcc.exe将原文件a.c编译为a.obj,然后tcc调用tlink.exe将c0s.obj、cs.lib、emu.lib、maths.lib中的a.obj中要用到的代码与a.obj的代码连接在一起生成a.exe。

来自c0s.obj中的代码被连接到其他代码之前,作用是进行相关的初始化工作、调用名称为“main”的函数、其他工作,因为c0s.obj的代码被连接到其他代码之前,则exe文件运行的时候运行来自c0s.obj中的代码,进行相关的初始化工作,然后调用main函数,开始运行程序员编写的程序。