Mysqlclient Library Linkage Problem
-
21-09-2019 - |
Frage
Ich verlinke eine Anwendung mit der MySQLClient -Bibliothek auf 64 -Bit CentOS 5.4 und erhalte einen Verknüpfungsfehler (fund -lmysqlclient nicht finden). Die Bibliothek ist in/usr/lib64/mysql/:
una@localhost$ ll /usr/lib64/mysql/
total 9072
...
lrwxrwxrwx 1 root root 26 Jan 3 15:54 libmysqlclient_r.so -> libmysqlclient_r.so.15.0.0
lrwxrwxrwx 1 root root 26 Jan 3 15:54 libmysqlclient_r.so.15 -> libmysqlclient_r.so.15.0.0
-rwxr-xr-x 1 root root 1518456 Sep 4 01:28 libmysqlclient_r.so.15.0.0
lrwxrwxrwx 1 root root 24 Jan 3 15:54 libmysqlclient.so -> libmysqlclient.so.15.0.0
lrwxrwxrwx 1 root root 24 Jan 3 15:54 libmysqlclient.so.15 -> libmysqlclient.so.15.0.0
-rwxr-xr-x 1 root root 1514000 Sep 4 01:28 libmysqlclient.so.15.0.0
...
Und das Verzeichnis scheint für Linux -Linker ordnungsgemäß registriert zu sein:
una@localhost$ cat /etc/ld.so.conf.d/mysql-x86_64.conf
/usr/lib64/mysql
Ich kann die Anwendung auf dieser Maschine nur mit der Angabe der angeben vollständigen Pfad in der Bibliotheksdatei, die in meinem Fall inakzeptabel ist. Was könnte das Problem hier verursachen?
Vielen Dank.
Lösung
-L/usr/lib64/mysql
Das Ld.so.conf -Zeug wird nur zur Laufzeit verwendet, nicht zur Zeit.
Andere Tipps
/usr/lib64/Mysql ist sicherlich nicht im Standard -Suchpfad Ihres GCC. Sie können ein AutoConf -Skript verwenden, um nach dem Installationspfad von libmysqlclient auf dieser Art von Verteilung zu suchen und den gefundenen Ort dynamisch mit dem -l -Flag zu verwenden.