0

/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 へのシンボリック リンクを追加しましたが、まだ解決されていません:

[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 がリストされていないのはなぜですか? 私は近づいています...最後のビットを理解することはできません!

4

1 に答える 1

0

明白なことを指摘するリスクを冒す:

.16

.so へのシンボリック リンクを作成し、再試行してください。

于 2014-03-18T21:27:38.450 に答える