problème de liaison de la bibliothèque mysqlclient
-
21-09-2019 - |
Question
Je liez une application avec la bibliothèque mysqlclient sur 64 bits CentOS 5.4 et obtenir une erreur de liaison (ne peut pas trouver -lmysqlclient). La bibliothèque est dans / 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
...
Et le répertoire semble être correctement enregistré pour linker Linux:
una@localhost$ cat /etc/ld.so.conf.d/mysql-x86_64.conf
/usr/lib64/mysql
La seule façon que je peux lier l'application sur cette machine est en spécifiant le chemin complet dans le fichier de bibliothèque qui est inacceptable dans mon cas. Ce qui pourrait causer le problème ici?
Merci.
La solution
-L/usr/lib64/mysql
Le truc ld.so.conf est utilisé lors de l'exécution, pas la compilation.
Autres conseils
/ usr / lib64 / MySQL est certainement pas dans le chemin de recherche par défaut de votre gcc. Vous pouvez utiliser un script autoconf pour rechercher le chemin d'installation de libmysqlclient sur ce type d'une distribution, et utiliser dynamiquement l'emplacement trouvé avec le drapeau -L.