Oracle. .so文件,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中的内容可以看到配置文件很多[root@SH-021Y-SFXY 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

在查看配置可以看到如下配置[root@SH-021Y-SFXY mcrypt-2.6.8]# cat /etc/ld.so.conf.d/qt-x86_64.conf

/usr/lib64/qt-3.3/lib

我增加一个配置文件[root@SH-021Y-SFXY mcrypt-2.6.8]# vi /etc/ld.so.conf.d/userlocal.conf

/usr/local/lib

再次查看可以发现已经找到该目录下的动态库[root@SH-021Y-SFXY 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命令查看是否因为动态库缺失导致程序无法启动[root@SH-021Y-SFXY 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)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这个错误提示表明程序在运行时无法找到所需的共享库文件libclntsh.so.18.1。这可能是因为该库文件未安装或未正确配置路径所致。您可以尝试以下方法解决该问题: 1. 确认库文件是否已安装:使用以下命令检查库文件是否已安装: ```shell ldconfig -p | grep libclntsh.so.18.1 ``` 如果未找到该库文件,则需要安装它。 2. 确认库文件路径是否正确:如果库文件已安装,则需要确认其路径是否正确。您可以使用以下命令检查库文件路径: ```shell ldconfig -v | grep libclntsh.so.18.1 ``` 如果路径不正确,则需要将其添加到LD_LIBRARY_PATH环境变量中。例如,如果库文件在/opt/oracle/instantclient_18_1目录中,则可以使用以下命令将其添加到环境变量中: ```shell export LD_LIBRARY_PATH=/opt/oracle/instantclient_18_1:$LD_LIBRARY_PATH ``` 或者,您可以将库文件路径添加到/etc/ld.so.conf文件中,并使用以下命令更新缓存: ```shell sudo ldconfig ``` 这将使系统能够找到库文件。 3. 确认程序是否正确链接库文件:如果库文件已安装并且路径正确,则可能是程序未正确链接库文件所致。您可以使用以下命令检查程序是否正确链接库文件: ```shell ldd /path/to/your/program ``` 如果未找到libclntsh.so.18.1,则需要将其添加到程序的链接选项中。例如,如果您使用gcc编译程序,则可以使用以下命令将其添加到链接选项中: ```shell gcc -o your_program your_program.c -L/opt/oracle/instantclient_18_1 -lclntsh ``` 这将使程序能够正确链接库文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值