本文介绍了什么是关于对Linux共享库的良好做法?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
最近,我读了很多关于Linux共享库,这里是我学到了什么:
I recently read a lot about shared libraries on Linux, and here is what I learnt:
- 共享库应该嵌入
的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
。这通常是由发展的包(当库打包在一起)。 完成
- 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
, ifldconfig
is run, it will read thesoname
and create a symlink namedlibfoo.so.1
pointing tolibfoo.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 tolibfoo.so.1.0
. This is usually done by the development package (when the library is packaged).
这是正确的?
推荐答案
推荐阅读:
乌尔里希Drepper如何写共享库:http://www.akkadia.org/drepper/dsohowto.pdf
Ulrich Drepper's How to write shared libraries: http://www.akkadia.org/drepper/dsohowto.pdf
乌尔里希Drepper在库的设计,实施和维护良好做法:http://www.akkadia.org/drepper/goodpractice.pdf
Ulrich Drepper's Good Practices in library design, implementation, and maintenance: http://www.akkadia.org/drepper/goodpractice.pdf
dsohowto是更详细。 goodpractice是一个快速阅读。
dsohowto is much more detailed. goodpractice is a quick read.
这篇关于什么是关于对Linux共享库的良好做法?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!