Domanda

Si stanno collegando un'applicazione con biblioteca mysqlclient a 64 bit CentOS 5.4 e viene visualizzato un errore di collegamento (non riesce a trovare -lmysqlclient). La biblioteca si trova 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
     ...

E la directory sembra essere correttamente registrato per Linux linker:

una@localhost$ cat /etc/ld.so.conf.d/mysql-x86_64.conf 
/usr/lib64/mysql

L'unico modo in cui posso collegare l'applicazione su questa macchina è specificando il il percorso completo per il file di libreria che è inaccettabile nel mio caso. Che cosa potrebbe causare il problema qui?

Grazie.

È stato utile?

Soluzione

-L/usr/lib64/mysql

La roba ld.so.conf viene utilizzato solo in fase di esecuzione, non è tempo di compilazione.

Altri suggerimenti

/ usr / lib64 / mysql non è certamente nel percorso di ricerca predefinito del GCC. È possibile utilizzare uno script autoconf per cercare il percorso di installazione di libmysqlclient su questo tipo di distribuzione, e utilizzare in modo dinamico la posizione trovata con il flag -L.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top