我最近阅读了很多有关 Linux 上共享库的内容,以下是我学到的内容:
- 共享库应该嵌入一个
soname
包括其主要版本号。就像是:libfoo.so.1
- 其真实文件名还应包含次要版本号。就像是:
libfoo.so.1.0
- 当库文件被复制到时,比如说
/usr/local/lib
, if ldconfig
运行时,它将读取soname
并创建一个名为的符号链接libfoo.so.1
指向libfoo.so.1.0
.
- 如果想使用这个库进行开发,应该首先创建一个没有任何版本号的符号链接到真实文件,比如说
libfoo.so
指向libfoo.so.1.0
。这通常是由发展包(当库被打包时)。
它是否正确 ?
建议阅读:
Ulrich Drepper 的《如何编写共享库》:http://www.akkadia.org/drepper/dsohowto.pdf http://www.akkadia.org/drepper/dsohowto.pdf
Ulrich Drepper 在库设计、实施和维护方面的良好实践:http://www.akkadia.org/drepper/goodpractice.pdf http://www.akkadia.org/drepper/goodpractice.pdf
dsohowto 更详细。好的做法是快速阅读。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)