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.

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top