C语言的链接原理

发表于:2015年3月4日 19:30  分类:c 695次浏览

原程序文件(.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函数,开始运行程序员编写的程序。

本文由李轶博的个人博客整理,转载请注明!本文链接地址:C语言的链接原理


最后编辑于:2015/1/9作者:李轶博

技术控一枚,互联网浪潮的追随者(非业界),喜欢折腾CODE,爱分享个人学习、生活经历。如果你喜欢李轶博的个人博客,欢迎和我一起交流!QQ:927796402

发表评论

电子邮件地址不会被公开。 必填项已用*标注