ld.so.conf.d配置文件

ld.so.conf.d用来加载Linux系统中的动态库文件的:

在/etc下我们会发现下面三个文件

ld.so.conf.d

ld.so.conf

ld.so.cache

查看ld.so.conf以后可以看到是包含了ld.so.conf.d中的所有配置文件

include ld.so.conf.d/*.conf

查看ld.so.conf.d中的内容可以看到配置文件很多

[[email protected] mcrypt-2.6.8]# ll /etc/ld.so.conf.d/
total 16
-rw-r--r--. 1 root root  17 Feb  9  2012 atlas-x86_64.conf
-r--r--r--. 1 root root 324 Jan 30  2013 kernel-2.6.32-358.el6.x86_64.conf
-rw-r--r--. 1 root root  17 Dec  5  2012 mysql-x86_64.conf
-rw-r--r--. 1 root root  22 Jul 18  2011 qt-x86_64.conf

在查看配置可以看到如下配置

[[email protected] mcrypt-2.6.8]# cat /etc/ld.so.conf.d/qt-x86_64.conf 
/usr/lib64/qt-3.3/lib

我增加一个配置文件

[[email protected] mcrypt-2.6.8]# vi /etc/ld.so.conf.d/userlocal.conf
/usr/local/lib

再次查看可以发现已经找到该目录下的动态库

[[email protected] mcrypt-2.6.8]# ldconfig  -p | grep libmcrypt
        libmcrypt.so.4 (libc6,x86-64) => /usr/local/lib/libmcrypt.so.4
        libmcrypt.so (libc6,x86-64) => /usr/local/lib/libmcrypt.so

但我实际操作过程中并不成功,而是在/etc/ld.so.conf中添加路径后,才生效。

相应的信息被缓存在ld.so.cache中了

通过string ld.so.cache可以查看到

如果出现软件无法运行的情况可以通过ldd命令查看是否因为动态库缺失导致程序无法启动

[[email protected] mcrypt-2.6.8]# ldd /sf_web/mysql/bin/mysql
        linux-vdso.so.1 =>  (0x00007fff3b5fc000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003ff8200000)
        librt.so.1 => /lib64/librt.so.1 (0x0000003ff8600000)
        libdl.so.2 => /lib64/libdl.so.2 (0x0000003ff7e00000)
        libncurses.so.5 => /lib64/libncurses.so.5 (0x00007f1380a06000)
        libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x0000003ffbe00000)
        libm.so.6 => /lib64/libm.so.6 (0x0000003ff8e00000)
        libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x0000003ffca00000)
        libc.so.6 => /lib64/libc.so.6 (0x0000003ff7a00000)
        /lib64/ld-linux-x86-64.so.2 (0x0000003ff7600000)
        libtinfo.so.5 => /lib64/libtinfo.so.5 (0x0000003ff9e00000)
时间: 2024-11-07 08:28:06

ld.so.conf.d配置文件的相关文章

/etc/ld.so.conf和/etc/ld.so.cache –linux动态共享库

可执行程序找不到要链接的动态共享库,这是Linux上面编译和运行程序很容易碰到的问题,接下来我们要探讨一下怎么设置程序寻找动态共享库的行为.Linux操作系统上面的动态共享库大致分为三类:1.操作系统级别的共享库和基础的系统工具库比方说libc.so, libz.so, libpthread.so等等,这些系统库会被放在/lib和/usr/lib目录下面,如果是64位操作系统,还会有/lib64和/usr /lib64目录.如果操作系统带有图形界面,那么还会有/usr/X11R6/lib目录,如

Linux系统中“动态库”和“静态库”那点事儿 /etc/ld.so.conf 动态库的后缀为*.so 静态库的后缀为 libxxx.a ldconfig 目录名

Linux系统中“动态库”和“静态库”那点事儿 /etc/ld.so.conf  动态库的后缀为*.so  静态库的后缀为 libxxx.a   ldconfig   目录名 转载自:http://blog.chinaunix.net/uid-23069658-id-3142046.html 今天我们主要来说说Linux系统下基于动态库(.so)和静态(.a)的程序那些猫腻.在这之前,我们需要了解一下源代码到可执行程序之间到底发生了什么神奇而美妙的事情. 在Linux操作系统中,普遍使用ELF格

转 ??????/etc/ld.so.conf.d/目录下文件的作用

在了解/etc/ld.so.conf.d/目录下文件的作用之前,先介绍下程序运行是加载动态库的几种方法:第一种,通过ldconfig命令    ldconfig命令的用途, 主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下, 搜索出可共享的动态链接库(格式如lib*.so*), 进而创建出动态装入程序(ld.so)所需的连接和缓存文件. 缓存文件默认为/etc/ld.so.cache, 此文件保存已排好序的动态链接库名字列表.   

apache源码安装必须依赖的库apr----/etc/ld.so.conf 文件介绍

Apache所依赖的库,封装了各个系统相关的API等.虽然都是Apache开发的,但是现在最新版本的Apache和APR源码是分开的.要编Apache就必须使用APR. /etc/ld.so.conf 此文件记录了编译时使用的动态库的路径,也就是加载so库的路径. 默认情况下,编译器只会使用/lib和/usr/lib这两个目录下的库文件,而通常通过源码包进行安装时,如果不指定--prefix会将库安装在 /usr/local目录下,而又没有在文件/etc/ld.so.conf中添加/usr/lo

usr/bin/ld: cannot find 错误解决方法和 /etc/ld.so.conf

我makefile出现这个错误: HelloWorldServer.c:(.text+0xaa): undefined reference to `zmq_send'collect2: error: ld returned 1 exit statusmake: *** [HelloWorldServer] Error 1 一直以为没找到动态库,但是指定了具体路径: LDFLAGS=  -L /opt/zeromq/lib -lzmq $(CC)  $(CFLAGS) $(LDFLAGS) -o

关于/etc/ld.so.conf

etc/ld.so.conf: 这个文件记录了编译时使用的动态链接库的路径. 默认情况下,编译器只会使用/lib和/usr/lib这两个目录下的库文件 如果你安装了某些库,比如在安装gtk+-2.4.13时它会需要glib-2.0 >= 2.4.0,辛苦的安装好glib后 没有指定 --prefix=/usr 这样glib库就装到了/usr/local下,而又没有在/etc/ld.so.conf中添加/usr/local/lib 库文件的路径如 /usr/lib 或 /usr/local/lib

ld.so.conf

Linux 共享库 Linux 系统上有两类根本不同的 Linux 可执行程序.第一类是静态链接的可执行程序.静态可执行程序包含执行所需的所有函数 - 换句话说,它们是"完整的".因为这一原因,静态可执行程序不依赖任何外部库就可以运行. 第二类是动态链接的可执行程序. 静态可执行程序与动态可执行程序比较 我们可以用 ldd 命令来确定某一特定可执行程序是否为静态链接的: # ldd /sbin/sln not a dynamic executable "not a dynam

linux环境 :Linux 共享库LIBRARY_PATH, LD_LIBRARY_PATH 与ld.so.conf

参考: 1. Linux 共享库:LD_LIBRARY_PATH 与ld.so.conf Linux环境变量名,该环境变量主要用于指定查找共享库(动态链接库)时除了默认路径之外的其他路径.(该路径在默认路径之前查找) 移植程序时的经常碰到需要使用一些特定的动态库,而这些编译好的动态库放在我们自己建立的目录里,这时可以将这些目录设置到LD_LIBRARY_PATH中. 当执行函数动态链接.so时,如果此文件不在缺省目录下‘/usr/local/lib’ and ‘/usr/lib’. 那么就需要指

有关LD_LIBRARY_PATH与ld.so.conf

我之前写过一篇关于LD_LIBRARY_PATH与gcc/g++ -L的关系的文章,于是我自己用CPACK制作了一个Debian安装包,然后我在/home/.bashrc里添加了export LD_LIBRARY_PATH=/usr/loca/lib:$LD_LIBRARY_PATH,再然后老大告诉我这个方法不行,打回重新想办法,经过一番寻找终于找到了---ld.so.conf可以完美解决这个问题. 首先说说,为什么LD_LIBRARY_PATH不行?可以看看老外是怎么说的 一般LD用在下面情况