16-总结
42.7 总结
动态链接器提供了dlopen API,它允许程序在运行时显式地加载其他共享库,这样程序就能够实现插件功能了。
共享库设计的一个重要方面是控制符号的可见性,这样库就能够只导出那些与该库进行链接的程序需要用到的符号了。本章介绍了几项用来控制符号可见性的技术。在这些技术中,版本脚本对符号可见性控制的粒度最细。
本章还介绍了如何使用版本脚本来实现一个共享库导出同一符号的多个定义以供与该库进行链接的不同应用程序使用的模型。(各个应用程序使用它与库进行链接链接时符号的当前定义。)这项技术为传统的在共享库真实名称中使用主要和次要版本号来继续版本化管理的方式提供了一个替代方案。
在共享库中定义初始化和终止函数允许在加载和卸载库时自动执行一段代码。
使用LD_PRELOAD环境变量能够预加载共享库。使用这种机制就能够有选择地覆盖那些动态链接器在正常情况下会在其他共享库中找到的函数和符号。
可以将各种值赋给LD_DEBUG环境变量以监控动态链接器的操作。
更多信息
更多信息请参考在41.14节中列出的信息源。