Я использую Ubuntu 12.04 на виртуальной машине на моем MacbookPro. Я установил build-essential, mysql-server и libmysqlclient-dev. Обе команды «mysql» и «mysql_config» работают.
Однако следующая программа не связывает:
#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;
}
Я запускаю g ++ с помощью команды:
g++ `mysql_config --cflags` `mysql_config --libs` test.cpp
У меня это работало в 32-битной версии Ubuntu, но Теперь у меня есть 64-битная версия. Проблема возникает как с использованием VirtualBox, так и с Parallels. Вывод mysql_config выглядит нормально.
Мне кажется, что компоновщик не может найти подходящий тип файла / архитектуры среди файлов libmysqlclient.
Что мне делать дальше?
Сообщение об ошибке «неопределенная ссылка на mysql_init».
Попробуйте вместо этого: сработало для меня
g++ -o test test.cpp `mysql_config --cflags` `mysql_config --libs`
Тогда тест
./test
Hello world YEP