mysqlclient enlace de biblioteca problema
-
21-09-2019 - |
Pregunta
Me une una aplicación con mysqlclient biblioteca de 64 bits CentOS 5.4 y obtener un vínculo de error (no se puede encontrar -lmysqlclient).La biblioteca se encuentra en /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
...
Y el directorio parece estar correctamente registrado para Linux vinculador:
una@localhost$ cat /etc/ld.so.conf.d/mysql-x86_64.conf
/usr/lib64/mysql
La única manera en que puedo vincular la aplicación de esta máquina es mediante la especificación de la ruta de acceso completa para el archivo de biblioteca que es inaceptable en mi caso.Lo que podría causar el problema aquí?
Gracias.
Solución
-L/usr/lib64/mysql
Las cosas ld.so.conf sólo se utiliza en tiempo de ejecución, no en tiempo de compilación.
Otros consejos
/ usr / lib64 / MySQL no está ciertamente en la ruta de búsqueda predeterminada de su gcc. Es posible utilizar un script autoconf para buscar la ruta de instalación de libmysqlclient en este tipo de distribución, y utilizar de forma dinámica la ubicación encontrado con la bandera -L.