1.ABI
ABI (Application Binary Interface) , 二进制接口,
对添加和修改接口, 其他的删除和改名等都不兼容。
2.SO_NAME
libname.so.x.y.z
最前面使用前缀"lib", 中间是库的名字和后缀".so",
x:主版本号,y:次版本号,z:发布版本号。
共享库的so_name,保存在".dynamic"段的。
关于链接版本的问题,
因为链接的时候都是软连接,对应相应的so_name,
从主版本号开始,取最新的,相同就往后面的次版本号 比较, 如果次版本号也相同, 最后就是比较发布版本号。
共享库的路径
/lib,
/usr/lib
/use/local/lib
对应的库的路径查找顺序:
1.有环境变量LD_LIBRARY_PATH
2.由路径缓存文件/etc/ld.so.cache指定的路径
3.默认共享库的目录 先/usr/lib 后/lib
3.共享库构造和析构函数
加载这个库之前 运行构造函数
完成之后 就用析构函数。