从本章开始将会每一篇博客整合多个章节的内容,发现每一章记录的内容不足以撑起一篇所谓的博客
- 如果函数库的一份拷贝是可执行文件的物理组成部分,那么我们称之为静态链接;如果可执行文件只是包含了文件名,让载入器在运行时能够寻找程序所需要的库函数,那么我们称之为动态链接
- 外部函数被真正调用之前,运行时载入器并不解析他们。所以即使链接了函数库,如果并没有实际调用,也不会带来额外开销。
- 具体如何链接一个动态链接库以及如何制作动态链接库
- 创建动态链接库使用
1
cc -o libfruit.so -G tomato.c
cc
命令以及-G
参数,将源文件tomato.c
编译为名为libfruit.so
的动态链接库 - 链接动态链接库
1
cc test.c -L/home/linden -R/home/linden -lfruit
-L/home/linden
以及-R/home/linden -lfruit
分别告诉链接器在链接以及运行时从哪个目录寻找需要链接的函数库。值得注意的是在指明具体的动态链接库文件的时候省去了前面的lib
,而直接使用了fruit
- 创建动态链接库
后续几章看完都没怎么做笔记。。。最后一章C++也跳过了,之后系统的看一下吧