ldconfig 管理系统中的动态链接库文件
ldconfig这个命令会在“特定的路径”下搜寻可以共享的动态链接库文件(在Linux底下格式为lib*.so*),进而创建出动态装入程序(ld.so)所需的连接和cache文件.这里"特定的路径"指/lib和/usr/lib这些默认路径以及动态库配置文件/etc/ld.so.conf内所列的目录以及文件.
如果刚刚安装了一个lib之后,相关文件仍然说找不到,可能是动态链接文件的cache没有更新.可以ldconfig把ld.so的cache更新一下:
ldconfig只处理foo文件夹下的动态链接文件(前面描述的特定路径下就不处理了)
ldconfig -n foo显示当前cache的动态链接文件
ldconfig -p
ldd
作用: 查看可执行文件需要的动态链接库
例子:
>ldd /bin/ls linux-vdso.so.1 => (0x00007fff549ff000) librt.so.1 => /lib/librt.so.1 (0x00007fd82409c000) libselinux.so.1 => /lib/libselinux.so.1 (0x00007fd823e7e000) libacl.so.1 => /lib/libacl.so.1 (0x00007fd823c75000) libc.so.6 => /lib/libc.so.6 (0x00007fd8238f2000) libpthread.so.0 => /lib/libpthread.so.0 (0x00007fd8236d5000) /lib64/ld-linux-x86-64.so.2 (0x00007fd8242c8000) libdl.so.2 => /lib/libdl.so.2 (0x00007fd8234d0000) libattr.so.1 => /lib/libattr.so.1 (0x00007fd8232cb000)
是否应该使用环境变量LD_LIBRARY_PATH?
答案是no.尽量不要设置这个变量.理由参见http://linuxmafia.com/faq/Admin/ld-lib-path.html
Mac下的动态链接
ldd对应otool
Ref
http://wiki.linuxquestions.org/wiki/Library
http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html
No comments:
Post a Comment