MySQL и C: неопределенная ссылка на `_mysql_init @ 4 '| - PullRequest
2 голосов
/ 26 ноября 2009

Я пытаюсь написать простой скрипт для C, чтобы получить значения из базы данных MySQL, но он выдает эту ошибку 'неопределенная ссылка на `_mysql_init @ 4' '

Не знаю, не ссылаюсь ли я на что-то, чем я должен быть? Мои знания C ограничены ...

Я использую кодовые блоки в Windows, вот мой код:

#include <winsock.h>
#include <C:\mysql\include\mysql.h>
#include <stdio.h>
#include <string.h>

int main()
{
   MYSQL mysql;
   MYSQL_RES *res;
   MYSQL_ROW row;

   char query[80];
   mysql_init(&mysql);
   mysql_real_connect(&mysql,"localhost","user","pass","db",0,NULL,0);
   sprintf(query,"SELECT src,dst FROM ipaudit");
   mysql_real_query(&mysql,query,(unsigned int)strlen(query));
   res = mysql_use_result(&mysql);
   while(row = mysql_fetch_row(res))
    printf("%s %sn",row[0],row[1]);
   mysql_free_result(res);
   return 0;
}

Ответы [ 3 ]

3 голосов
/ 26 ноября 2009

undefined reference относится к проблеме с компоновщиком. Функция mysql_init() не является частью вашего кода и уже скомпилирована в библиотеке. Вы должны указать компоновщику включить код для этой функции, указав библиотеку, в которой находится указанный код.

Я не знаю, как указать библиотеки в кодовых блоках, извините

Редактировать

Быстрый поиск Google для определения библиотек в блоках кода дал интересный результат :)

3 голосов
/ 26 ноября 2009

Это ошибка компоновщика, указывающая, что компоновщик не может найти функцию mysql_init.

Убедитесь, что вы ссылаетесь на libmysql.lib или mysqlclient.lib. Вам также необходимо включить <my_global.h> при сборке в Windows (см. Ту же страницу в руководстве по MySQL).

1 голос
/ 08 октября 2011

использовать 32-битный разъем: http://www.mysql.com/downloads/connector/c/ и не забудьте #include <windows.h> до #include <mysql.h>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...