Tente isso: trabalhou para mim
g++ -o test test.cpp 'mysql_config --cflags' 'mysql_config --libs'
Então teste
./test
Hello world YEP
Eu uso o Ubuntu 12.04 em uma máquina virtual no meu MacbookPro. Eu instalei o build-essential, o mysql-server e o libmysqlclient-dev. Ambos os comandos 'mysql' e 'mysql_config' funcionam.
No entanto, o programa a seguir não vincula:
#include <stdio.h>
#include <unistd.h>
#include <mysql.h>
int main(int argc,char *argv[]){
printf("hello world\n");
//init
{
MYSQL itsmysql;
MYSQL* mytemp=0; mytemp=mysql_init(&itsmysql);
if(mytemp){
printf("hello world YEP\n");
}
else{
printf("hello world NOOOO\n");
}
}
return 0;
}
Eu corro g ++ com o comando:
g++ 'mysql_config --cflags' 'mysql_config --libs' test.cpp
Eu tive isso rodando em uma versão de 32 bits do Ubuntu, mas agora eu tenho uma versão de 64 bits. O problema ocorre usando o VirtualBox como com o Parallels. A saída do 'mysql_config' parece ok.
Parece-me que o vinculador não consegue encontrar o tipo de arquivo / arquitetura apropriado entre os arquivos libmysqlclient.
O que devo tentar em seguida?
A mensagem de erro é 'referência indefinida para mysql_init'.
Tente isso: trabalhou para mim
g++ -o test test.cpp 'mysql_config --cflags' 'mysql_config --libs'
Então teste
./test
Hello world YEP