Problema da biblioteca mysqlclient
-
21-09-2019 - |
Pergunta
Estou vinculando um aplicativo à Biblioteca MySQLClient no CentOS 5.4 de 64 bits e recebo um erro de ligação (não é possível encontrar -lmysqlclient). A biblioteca está em/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 o diretório parece estar devidamente registrado para o Linux Linker:
una@localhost$ cat /etc/ld.so.conf.d/mysql-x86_64.conf
/usr/lib64/mysql
A única maneira de vincular o aplicativo nesta máquina é especificando o caminho completo ao arquivo da biblioteca que é inaceitável no meu caso. O que poderia causar o problema aqui?
Obrigado.
Solução
-L/usr/lib64/mysql
O material ld.so.conf é usado apenas em tempo de execução, não em tempo de compilação.
Outras dicas
/usr/lib64/mysql certamente não está no caminho de pesquisa padrão do seu GCC. Você pode usar um script AutoConf para pesquisar o caminho de instalação do libmysqlclient nesse tipo de distribuição e usar dinamicamente o local encontrado com o sinalizador -l.