一、前言
我们的C程序中,并没有定义“printf”的函数实现,且在预编译中包含的“stdio.h”中也只有该函数的声明,而没有定义函数的实现,那么,是在哪里实“printf”函数的呢?
最后的答案是:系统把这些函数实现都被做到名为 libc.so.6 的库文件中去了,在没有特别指定时,gcc 会到系统默认的搜索路径“/usr/lib”下进行查找,也就是链接到 libc.so.6 库函数中去,这样就能实现函
数“printf”了,而这也就是链接的作用。
函数库一般分为静态库和动态库两种,同样的,链接也分为动静态链接。
二、动静态链接
1.动态链接

我们举个形象的例子,我们寝室没有电脑,并且我们周末列了一系列计划,执行到上网的计划的时候,我们跑到校外的XX网吧去上网,上完网后,返回寝室继续执行计划。把程序比作我们的话,网吧比作库,这种上网然后返回的行为就叫做
库函数跳转。
那么,程序怎么找到库呢?
编译器或者编辑器会指引程序找到库&#