gpt4 book ai didi

linux - CentOS - 程序找不到丢失的库,但 ld.conf 指向它

转载 作者:太空宇宙 更新时间:2023-11-04 04:02:36 25 4
gpt4 key购买 nike

当我在 /opt/Qt5.1.0/5.1.0/gcc_64/plugins/sqldrivers/libqsqlmysql.so 上运行 ldd 时,我发现它找不到 libmysqlclient_r.so.16

linux-vdso.so.1 =>  (0x00007fffe2dfe000)
libmysqlclient_r.so.16 => not found
libQt5Sql.so.5 => /opt/Qt5.1.0/5.1.0/gcc_64/plugins/sqldrivers/../../lib/libQt5Sql.so.5 (0x00007f291c093000)
libQt5Core.so.5 => /opt/Qt5.1.0/5.1.0/gcc_64/plugins/sqldrivers/../../lib/libQt5Core.so.5 (0x00007f291ba0a000)
libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f291b706000)
libc.so.6 => /lib64/libc.so.6 (0x00007f291b345000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f291b129000)
libicui18n.so.51 => /opt/Qt5.1.0/5.1.0/gcc_64/plugins/sqldrivers/../../lib/libicui18n.so.51 (0x00007f291ad10000)
libicuuc.so.51 => /opt/Qt5.1.0/5.1.0/gcc_64/plugins/sqldrivers/../../lib/libicuuc.so.51 (0x00007f291a989000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f291a785000)
libgthread-2.0.so.0 => /lib64/libgthread-2.0.so.0 (0x00007f291a583000)
librt.so.1 => /lib64/librt.so.1 (0x00007f291a37a000)
libglib-2.0.so.0 => /lib64/libglib-2.0.so.0 (0x00007f291a04e000)
libm.so.6 => /lib64/libm.so.6 (0x00007f2919d4c000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f2919b35000)
/lib64/ld-linux-x86-64.so.2 (0x0000003723a00000)
libicudata.so.51 => /opt/Qt5.1.0/5.1.0/gcc_64/plugins/sqldrivers/../../lib/libicudata.so.51 (0x00007f29183ec000)

所以 libmysqlclient_r.so.16 丢失了...所以我做了一个“find/-name libmysqlclient_r.so*”并发现:

/usr/lib64/mysql/libmysqlclient_r.so

看来我的程序没有找到so文件。所以我查看了/etc/ld.so.conf.d/并发现 maria conf 文件包含:

/usr/lib64/mysql

这不是意味着 linux 加载器应该找到丢失的库文件吗?上面的程序需要 libmysqlclient_r.so.16 ,并且 libmysqlclient_r.so 位于/etc/ld.so.conf.d/mariadb-x86_64.conf 提供的 LD 路径

这里缺少什么链接?

<小时/>

更新:我添加了从 .so.16 到 .so 的符号链接(symbolic link),但仍未解决:

[root@dev mysql]# ldd /opt/Qt5.1.0/5.1.0/gcc_64/plugins/sqldrivers/libqsqlmysql.so | grep found
libmysqlclient_r.so.16 => not found
[root@lt-ms-fedora64 mysql]# ll
total 3052
lrwxrwxrwx. 1 root root 17 Mar 18 15:26 libmysqlclient_r.so -> libmysqlclient.so
lrwxrwxrwx. 1 root root 17 Mar 18 17:52 libmysqlclient_r.so.16 -> libmysqlclient.so
lrwxrwxrwx. 1 root root 20 Mar 18 15:26 libmysqlclient.so -> libmysqlclient.so.18
lrwxrwxrwx. 1 root root 17 Mar 18 17:51 libmysqlclient.so.16 -> libmysqlclient.so
lrwxrwxrwx. 1 root root 24 Mar 13 19:51 libmysqlclient.so.18 -> libmysqlclient.so.18.0.0
-rwxr-xr-x. 1 root root 3114608 Feb 5 13:06 libmysqlclient.so.18.0.0
-rwxr-xr-x. 1 root root 6946 Feb 5 13:04 mysql_config
[root@dev mysql]# pwd
/usr/lib64/mysql
[root@dev mysql]# ldd /opt/Qt5.1.0/5.1.0/gcc_64/plugins/sqldrivers/libqsqlmysql.so | grep found
libmysqlclient_r.so.16 => not found
[root@lt-ms-fedora64 mysql]# ldconfig

和“ldconfig -v | more”显示(仅部分):

/usr/lib64/llvm:
libLTO.so -> libLTO.so
libLLVM-3.3.so -> libLLVM-3.3.so
libprofile_rt.so -> libprofile_rt.so
/usr/lib64/mysql:
libmysqlclient.so.18 -> libmysqlclient_r.so.16
/usr/lib64/tracker-0.16:
libtracker-data.so.0 -> libtracker-data.so.0.1600.1
libtracker-common.so.0 -> libtracker-common.so.0.1600.1
/usr/lib64/xulrunner:
libmozalloc.so ->

我不明白该行 libmysqlclient.so.18 -> libmysqlclient_r.so.16 - 为什么 _r.so.16 没有列出?我已经很接近了...只是无法弄清楚最后一点!

最佳答案

冒着指出显而易见的风险:

.16

创建 .so 的符号链接(symbolic link),然后重试。

关于linux - CentOS - 程序找不到丢失的库,但 ld.conf 指向它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22491116/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com