我最近阅读了很多关于 Linux 上的共享库的文章,以下是我学到的内容:
- 一个共享库应该包含一个带有其主版本号的
soname
。例如:libfoo.so.1
- 它的真实文件名也应包括次要版本号。例如:
libfoo.so.1.0
- 当库文件被复制到例如
/usr/local/lib
这样的位置时,如果运行ldconfig
命令,则会读取soname
并创建一个名为libfoo.so.1
的符号链接,指向libfoo.so.1.0
。 - 如果想要在开发中使用这个库,就应首先创建一个指向真实文件的没有任何版本号的符号链接,例如
libfoo.so
指向libfoo.so.1.0
。这通常由开发包(当打包库时)完成。
这是正确的吗?
ldconfig
,gcc
)和我自己的经验。这个链接很有帮助:http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html - ereOn