本章主要是对如何link的思考,包括编译的过程,编译时候的选项,动态连接,静态链接等等,另外就是要提防interpositioning(编写与库函数同名函数)。
给个直观的图来说明编译器的组成:
静态链接:如果函数库的一份copy是可执行文件的物理组成部分。以.a结尾
动态链接:如果可执行文件只是包含了文件名,让载入器在运行时能够寻找程序所需要的函数库。即just in time JIT 链接以.so结尾
直观上的,静态库要比动态库大。
动态链接的优点在于体积小,以及可以共享函数库,同时,函数库升级更加容易
关于链接相关知识,还可以参考Makefile文件的编写,chinaunix的这个写得很有味道
No comments:
Post a Comment