Se você estiver ligando o seu programa e obter o erro de
símbolos sem referência que iniciam com
mysql_
, como os seguintes:
/tmp/ccFKsdPa.o: In function `main': /tmp/ccFKsdPa.o(.text+0xb): undefined reference to `mysql_init' /tmp/ccFKsdPa.o(.text+0x31): undefined reference to `mysql_real_connect' /tmp/ccFKsdPa.o(.text+0x57): undefined reference to `mysql_real_connect' /tmp/ccFKsdPa.o(.text+0x69): undefined reference to `mysql_error' /tmp/ccFKsdPa.o(.text+0x9a): undefined reference to `mysql_close'
você deve estar apto a resolvê-los adicionando
-Lpath-to-the-mysql-library -lmysqlclient
no final da sua linha de
ligação.
Se você obter erros de undefined reference
(referência indefinida)
para as funções
descompactadas
ou
compactadas
, adicione -lz
no final sa sua linha de
ligação e tente novamente!
Se você obter erros de undefined reference
(referência indefinida)
para funções que devem
existir em seu sistema, como connect
,
verifique a página do man sobre a função em questão para
saber quais bibiotecas você deve adicionar a sua linha de
ligação!
Se você obter erros de undefined reference
(referência indefinida)
para funções que não
existem em seu sistema, como o seguinte
mf_format.o(.text+0x201): undefined reference to `__lxstat'
normalmente significa que sua biblioteca é compilada em um sistema que não é 100% compatível com o seu. Neste caso você de fazer o download da última distribuição fonte do MySQL e compilá-la você mesmo. See Secção 2.3, “Instalando uma distribuição com fontes do MySQL”.
Se você estiver tentando executar um programa e então obter
erros de símbolos sem referência que começam com
mysql_
ou que a biblioteca do
mysqlclient
não pode encontrar, significa
que seu sistema não pode encontrar a biblioteca compartilhada
libmysqlclient.so
.
A correção deste problema é dizer ao seu sistema para buscar onde a biblioteca esta lacolizada usando um dos seguintes métodos:
Adicione o caminho ao diretório onde está o
libmysqlclient.so
à variável de
ambiente LD_LIBRARY_PATH
.
Adicione o caminho ao diretório onde está o
libmysqlclient.so
à variável de
ambiente LD_LIBRARY
.
Copie libmysqlclient.so
a algum local
que é pesquisado pelo seu sistema, como
/lib
, e atualize a informação da
biblioteca compartilhada executando
ldconfig
.
OUtro modo de resolver este problema é ligar o seu programa
estaticamente, com -static
, ou removendo as
bibliotecas dinâmicas do MySQL antes de ligar o seu código. Na
próxima vez você deve estar certo que nenhum outro programa
esta usando bibliotecas dinâmicas!
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.