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.

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top