Problemas de Ligação com a Biblioteca do Cliente MariaDB


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 MariaDB e compilá-la você mesmo. Leia "Instalando uma distribuição com fontes do MariaDB".

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:

OUtro modo de resolver este problema é ligar o seu programa estaticamente, com -static, ou removendo as bibliotecas dinâmicas do MariaDB antes de ligar o seu código. Na próxima vez você deve estar certo que nenhum outro programa esta usando bibliotecas dinâmicas!

Retornar