Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

I recently read a lot about shared libraries on Linux, and here is what I learnt:

  • A shared library should embed a soname including its major version number. Something like: libfoo.so.1
  • Its real filename should also include a minor version number. Something like: libfoo.so.1.0
  • When the library file is copied to, say /usr/local/lib, if ldconfig is run, it will read the soname and create a symlink named libfoo.so.1 pointing to libfoo.so.1.0.
  • If one wants to use this library for its developments it should first create a symlink without any version number to the real file, say libfoo.so pointing to libfoo.so.1.0. This is usually done by the development package (when the library is packaged).

Is this correct ?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
302 views
Welcome To Ask or Share your Answers For Others

1 Answer

Suggested reading:

Ulrich Drepper's How to write shared libraries: http://www.akkadia.org/drepper/dsohowto.pdf

Ulrich Drepper's Good Practices in library design, implementation, and maintenance: http://www.akkadia.org/drepper/goodpractice.pdf

dsohowto is much more detailed. goodpractice is a quick read.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...