Ошибка сборки при разработке приложений на C и MYSQL - PullRequest
0 голосов
/ 20 марта 2012

Я пишу некоторый код на C, который подключается к серверу MYSQL.Я использую NetBeans и новичок в этом.Я настроил его в соответствии с указаниями и установил MYSQL Connector C. Я также установил CYGWIN GCC, G ++, GDB, MAKE с сайта cygwin.Я создал проект ac и в свойствах-> build-> c compiler-> Include каталоги установил путь к соединителю mysql (C: \ Program Files \ MySQL \ Connector C 6.0.2 \ include).Теперь я пишу код для взаимодействия с MYSQL-сервером, при сборке возникает ошибка.

#include <stdio.h>
#include <stdlib.h>
#include <mysql.h>


int main(int argc, char** argv) {   


MYSQL *conn;
MYSQL_RES *res;
MYSQL_ROW row;
char *server = "localhost";
char *user = "root";
char *password = "aaaa"; /* set me first */
char *database = "mysql";
conn = mysql_init(NULL);
/* Connect to database */
if (!mysql_real_connect(conn, server,
     user, password, database, 0, NULL, 0)) {
  fprintf(stderr, "%s\n", mysql_error(conn));
  exit(1);
}
/* send SQL query */
if (mysql_query(conn, "show tables")) {
  fprintf(stderr, "%s\n", mysql_error(conn));
  exit(1);
}
res = mysql_use_result(conn);
/* output table name */
printf("MySQL Tables in mysql database:\n");
while ((row = mysql_fetch_row(res)) != NULL)
  printf("%s \n", row[0]);
/* close connection */
mysql_free_result(res);
mysql_close(conn);

return (EXIT_SUCCESS);
}

После сборки возникает ошибка:

build/Debug/Cygwin-Windows/main.o: In function `main':
/cygdrive/c/Documents and Settings/AEM/My     Documents/NetBeansProjects/CppApplication_2/main.c:26: undefined reference to `_mysql_init'
/cygdrive/c/Documents and Settings/AEM/My    Documents/NetBeansProjects/CppApplication_2/main.c:28: undefined reference to     `_mysql_real_connect'
/cygdrive/c/Documents and Settings/AEM/My    Documents/NetBeansProjects/CppApplication_2/main.c:30: undefined reference to   `_mysql_error'
/cygdrive/c/Documents and Settings/AEM/My    Documents/NetBeansProjects/CppApplication_2/main.c:34: undefined reference to   `_mysql_query'
/cygdrive/c/Documents and Settings/AEM/My Documents/NetBeansProjects/CppApplication_2/main.c:35: undefined reference to `_mysql_error'
/cygdrive/c/Documents and Settings/AEM/My  Documents/NetBeansProjects/CppApplication_2/main.c:38: undefined reference to `_mysql_use_result'
/cygdrive/c/Documents and Settings/AEM/My   Documents/NetBeansProjects/CppApplication_2/main.c:41: undefined reference to   `_mysql_fetch_row'
/cygdrive/c/Documents and Settings/AEM/My Documents/NetBeansProjects/CppApplication_2/main.c:44: undefined reference to `_mysql_free_result'
/cygdrive/c/Documents and Settings/AEM/My  Documents/NetBeansProjects/CppApplication_2/main.c:45: undefined reference to `_mysql_close'
make[2]: Leaving directory `/cygdrive/c/Documents and Settings/AEM/My   Documents/NetBeansProjects/CppApplication_2'
make[1]: Leaving directory `/cygdrive/c/Documents and Settings/AEM/My   Documents/NetBeansProjects/CppApplication_2'
collect2: ld returned 1 exit status
make[2]: *** [dist/Debug/Cygwin-Windows/cppapplication_2.exe] Error 1
make[1]: *** [.build-conf] Error 2
make: *** [.build-impl] Error 2


BUILD FAILED (exit value 2, total time: 1s)

Я много гуглил, но ничего не смог найтирешить эту проблему.Нужна помощь.

1 Ответ

0 голосов
/ 20 марта 2012

добавить -lmysql для связи с библиотекой mysql (допустимо для gcc).Или, если вы используете другой компилятор, скажите компилятору

  • , где находятся библиотеки (добавьте путь)
  • , чтобы связать библиотеку с исполняемым файлом.Это что-то другое, затем добавление пути.
...