g ++ falha ao vincular ao libmysqlclient

0

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'.

    
por user156724 08.05.2013 / 10:02

1 resposta

1

Tente isso: trabalhou para mim

g++ -o test test.cpp 'mysql_config --cflags' 'mysql_config --libs'

Então teste

./test
Hello world YEP
    
por Warren Hill 08.05.2013 / 12:45