什么是关于Linux上的共享库的良好做法?

我最近读了很多关于Linux上的共享库,下面是我所学到的:

  • 共享库应该embedded一个soname包括其主版本号。 就像: libfoo.so.1
  • 它的真实文件名也应该包含一个小版本号。 就像: libfoo.so.1.0
  • 将库文件复制到/usr/local/lib ,如果运行ldconfig ,它将读取soname并创build一个名为libfoo.so.1的符号链接,指向libfoo.so.1.0
  • 如果你想使用这个库来进行开发,它应该首先创build一个没有任何版本号的符号链接到真实文件,比如说libfoo.so指向libfoo.so.1.0 。 这通常由开发包完成(当库被打包时)。

它是否正确 ?

建议阅读:

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

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

dsohowto更为详细。 goodpractice是一个快速阅读。