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

ere*_*eOn 9 c c++ linux shared-libraries

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

  • 共享库应嵌入soname包括其主要版本号的a.就像是: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.这通常由开发包完成(当打包库时).

它是否正确 ?

sar*_*old 19

建议阅读:

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

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

dsohowto更加详细.goodpractice是一个快速阅读.