关于Linux上的共享库有哪些好的做法?

时间:2011-01-21 09:16:50

标签: c++ c linux shared-libraries

我最近在Linux上阅读了很多关于共享库的内容,这是我学到的:

  • 共享库应嵌入soname,包括其主要版本号。类似于:libfoo.so.1
  • 其真实文件名还应包含次要版本号。类似于:libfoo.so.1.0
  • 将库文件复制到/usr/local/lib时,如果运行ldconfig,它将读取soname并创建一个名为libfoo.so.1的符号链接,指向libfoo.so.1.0 1}}。
  • 如果想要将此库用于其开发,则应首先创建一个没有任何版本号的符号链接到真实文件,例如libfoo.so指向libfoo.so.1.0。这通常由 development 包完成(当打包库时)。

这是对的吗?

1 个答案:

答案 0 :(得分:18)

建议阅读:

Ulrich Drepper的如何编写共享库:http://www.akkadia.org/drepper/dsohowto.pdf

Ulrich Drepper在图书馆设计,实施和维护方面的良好实践:http://www.akkadia.org/drepper/goodpractice.pdf

dsohowto更加详细。好的实践是快速阅读。