Форум: Форум C++Разное
Новые темы: 00
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум C++

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Не могу откомпилировать программу c++ используя mysql (undefined reference to 'mysql_init')
 
 автор: _Vladimir   (26.12.2011 в 17:22)   письмо автору
 
 

Помогите пожалуйста с решением проблемы, есть программа приведенная ниже, и ошибки при компиляции (ниже).
Я уже 2 дня мучаюсь перепробовал миллион вариантов, в чем проблема не знаю. Использую NetBeans 7.01 (под ubuntu). Буду безмерно рад решению проблемы.

КОД:
#include <my_global.h>
#include <mysql.h>

int main(int argc, char *argv[])
{
  // Дескриптор соединения
  MYSQL *conn;
  // Получаем дескриптор соединения
  conn = mysql_init(NULL);
  if(conn == NULL)
  {
    // Если дескриптор не получен - выводим сообщение об ошибке
    fprintf(stderr, "Error: can't create MySQL-descriptor\n");
    exit(1);
  }
  // Подключаемся к серверу
  if(!mysql_real_connect(conn,
    NULL,
    "root",
    NULL,
    NULL,
    NULL,
    NULL,
    0
  ))
  {
    // Если нет возможности установить соединение с сервером 
    // базы данных выводим сообщение об ошибке
    fprintf(stderr, 
    "Error: can't connect to database %s\n"
,
    mysql_error(conn));
  }
  else
  {
    // Если соединение успешно установлено выводим фразу - "Success!"
    fprintf(stdout, "Success!\n");
  }; 
  // Закрываем соединение с сервером базы данных
  mysql_close(conn);
}

Выводимые ошибки:
build/Debug/GNU-Linux-x86/main.o: In function `main':
/home/vladimir/NetBeansProjects/Zakupki/main.cpp:9: undefined reference to `mysql_init'
/home/vladimir/NetBeansProjects/Zakupki/main.cpp:25: undefined reference to `mysql_real_connect'
/home/vladimir/NetBeansProjects/Zakupki/main.cpp:31: undefined reference to `mysql_error'
/home/vladimir/NetBeansProjects/Zakupki/main.cpp:39: undefined reference to `mysql_close'
collect2: ld returned 1 exit status

  Ответить  
 
 автор: cheops   (26.12.2011 в 18:40)   письмо автору
 
   для: _Vladimir   (26.12.2011 в 17:22)
 

Проблема в том, что компилируется все нормально, но линковщик не видит библиотеку libmysql.lib (как вариант libmysql.so). Бинарного модуля вашей программы main.o мало, нужен еще бинарный модуль от <mysql.h> - его обнаружить не удается.

  Ответить  
 
 автор: _Vladimir   (28.12.2011 в 18:15)   письмо автору
 
   для: cheops   (26.12.2011 в 18:40)
 

спасибо! Действительно при компоновке необходимо указать динамическую библиотеку mysqlclient с параметром -l, все работает.

  Ответить  
 
 автор: asker++   (30.01.2012 в 11:01)   письмо автору
 
   для: _Vladimir   (26.12.2011 в 17:22)
 

Кстати, помоему гораздо удобнее использовать SQLite, я попробовал с MySQL работать - не удобно, постоянно какие-то проблемы. Кроме того у них embedded-вариант (встроенный в программу) сервер помоему окончательно заброшен. SQLite без проблем вставляется в программу, а имеет тот же SQL-синтаксис, что и MySQL (покрайней мере базовые вопросы - не отличить) и внешний сервер не нужен. Причем его можно как в проект вставить (коды свободные и представляют собой пару файлов), так и готовую DLL-библиотеку использовать.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования