关于Linux共享库,有哪些好的实践方法?

15

我最近阅读了很多关于 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。这通常由开发包(当打包库时)完成。

这是正确的吗?


2
你说得没错,但是无论如何请参考http://www.nondot.org/sabre/Mirrored/libtool-2.1a/libtool_6.html :) - ismail
@Navi:几个链接,man页面(ldconfiggcc)和我自己的经验。这个链接很有帮助:http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html - ereOn
@İsmail 'cartman' Dönmez:不要犹豫,将此作为答案发布(毕竟您完美地回答了我的问题;). - ereOn
我会放弃回答这个问题,因为其中一个部分需要解释的是何时应该提升库版本,一个好的答案应该包括这一点 :) - ismail
1个回答

25

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接