增加自己的so到debian

来源:互联网 发布:网络交友的利 编辑:程序博客网 时间:2024/06/05 22:34

当so编译完后,可以选择拷贝到/lib or /usr/lib, 再运行ldconfig使新增的so生效.

也可以编辑/etc/ld.so.conf, 将自己的so加入配置文件中,可以不用拷贝文件到debian.
这样做,便于管理(安装和卸载). 开源软件(boost, mysql, mongo)都是选用这种方式.

实验

view /etc/ld.so.conf

root@debian750:/etc# more /etc/ld.so.confinclude /etc/ld.so.conf.d/*.conf

/etc/ld.so.conf包含的是/etc/ld.so.conf.d/下所有的conf文件

view /etc/ld.so.conf.d/*.conf

root@debian750:/etc# more /etc/ld.so.conf.d/*.conf::::::::::::::/etc/ld.so.conf.d/boost.conf::::::::::::::/usr/local/lib/boost::::::::::::::/etc/ld.so.conf.d/libc.conf::::::::::::::# libc default configuration/usr/local/lib::::::::::::::/etc/ld.so.conf.d/mongo.conf::::::::::::::/usr/local/lib/MongoCxx::::::::::::::/etc/ld.so.conf.d/mysql.conf::::::::::::::/usr/local/lib/mysql/::::::::::::::/etc/ld.so.conf.d/pcap.conf::::::::::::::/usr/local/lib/pcap/::::::::::::::/etc/ld.so.conf.d/vmware-tools-libraries.conf::::::::::::::/usr/lib/vmware-tools/lib32/libvmGuestLib.so/usr/lib/vmware-tools/lib64/libvmGuestLib.so/usr/lib/vmware-tools/lib32/libvmGuestLibJava.so/usr/lib/vmware-tools/lib64/libvmGuestLibJava.so/usr/lib/vmware-tools/lib32/libDeployPkg.so/usr/lib/vmware-tools/lib64/libDeployPkg.so::::::::::::::/etc/ld.so.conf.d/x86_64-linux-gnu.conf::::::::::::::# Multiarch support/lib/x86_64-linux-gnu/usr/lib/x86_64-linux-gnu

总结

从已经存在的/etc/ld.so.conf.d/.conf可以看出.conf文件里面可以写以下行内容
* 本系列软件的so所在路径
e.g. /usr/local/lib/MongoCxx
* 本系列软件so的全路径名称
e.g. /usr/lib/vmware-tools/lib32/libvmGuestLib.so
* .conf文件支持多行

例子

在/etc/ld.so.conf.d/中增加my.conf
my.conf内容如下:

/home/ls/prj/mylib/home/ls/prj/3rdlib/3rd.so

运行ldconfig使配置文件生效, 运行使用新增so的程序.