The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Ошибка компилятора "
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [ Отслеживать ]

"Ошибка компилятора "  +/
Сообщение от Andrey (??) on 29-Дек-09, 19:28 
В общем час назад всё работало, и тут начало выдавать ошибку:
[root@localhost ****]# gcc -o mysqlrun $(mysql_config --cflags) hello.c $(mysql_config --libs)
/tmp/ccm27GdK.o: In function `main':
/usr/****/hello.c:19: undefined reference to `mysql_connect'
collect2: ld returned 1 exit status


Из-за чего это может быть? Код:
#include <stdio.h>
#include <stdlib.h>
#include "mysql.h"

MYSQL mysql;
MYSQL_RES *res;
MYSQL_ROW row;

void exiterr(int exitcode)
{
  fprintf(stderr, "%s\n", mysql_error(&mysql));
  exit(exitcode);
}

int main()
{
  uint i = 0;

  if (!(mysql_connect(&mysql,"host","username","password")))
     exiterr(1);
  if (mysql_select_db(&mysql,"payroll")) exiterr(2);
  if (mysql_query(&mysql,"SELECT name,rate FROM emp_master"))
     exiterr(3);
  if (!(res = mysql_store_result(&mysql))) exiterr(4);
  while((row = mysql_fetch_row(res))) {
    for (i=0 ; i < mysql_num_fields(res); i++)
      printf("%s\n",row[i]);
  }
  if (!mysql_eof(res)) exiterr(5);
  mysql_free_result(res);
  mysql_close(&mysql);
}

Высказать мнение | Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Ошибка компилятора "  +/
Сообщение от Michael (??) on 30-Дек-09, 11:42 
>В общем час назад всё работало, и тут начало выдавать ошибку:
>[root@localhost ****]# gcc -o mysqlrun $(mysql_config --cflags) hello.c $(mysql_config --libs)
>/tmp/ccm27GdK.o: In function `main':
>/usr/****/hello.c:19: undefined reference to `mysql_connect'
>collect2: ld returned 1 exit status
>>

что выдает mysql_config --libs? и проверьте, действительно ли там есть его библиотека

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Ошибка компилятора "  +/
Сообщение от Andrey (??) on 30-Дек-09, 12:29 
Выдаёт:
-rdynamic -L/usr/lib/mysql -lmysqlclient -lz -lcrypt -lnsl -lm -lssl -lcrypto
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Ошибка компилятора "  +/
Сообщение от Andy_zzzzzz on 30-Дек-09, 14:34 
>Выдаёт:
>-rdynamic -L/usr/lib/mysql -lmysqlclient -lz -lcrypt -lnsl -lm -lssl -lcrypto

проверь есть ли физически файлы библиотек в /usr/lib/mysql ?


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Ошибка компилятора "  +/
Сообщение от Andrey (??) on 30-Дек-09, 14:37 
[root@localhost ~]# cd /usr/lib/mysql
[root@localhost mysql]# dir
libdbug.a                   libmysqlclient_r.so.16      libndbclient.a
libheap.a                   libmysqlclient_r.so.16.0.0  libndbclient.so
libmyisam.a                 libmysqlclient.so           libndbclient.so.3
libmyisammrg.a              libmysqlclient.so.15        libndbclient.so.3.0.0
libmysqlclient.a            libmysqlclient.so.15.0.0    libvio.a
libmysqlclient_r.a          libmysqlclient.so.16        mysqlbug
libmysqlclient_r.so         libmysqlclient.so.16.0.0    mysql_config
libmysqlclient_r.so.15      libmystrings.a              plugin
libmysqlclient_r.so.15.0.0  libmysys.a

Не пойму, потому что всё работало, а тут резко такое

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "Ошибка компилятора "  +/
Сообщение от Slavaz (ok) on 30-Дек-09, 14:49 
1)
- mysql_connect (http://dev.mysql.com/doc/refman/5.1/en/mysql-connect.html)
+ mysql_real_connect (http://dev.mysql.com/doc/refman/5.1/en/mysql-real-connect.html)

2) use google before.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "Ошибка компилятора "  +/
Сообщение от Slavaz (ok) on 30-Дек-09, 14:55 
и немного странный код. Предлагаю шаблонно, в качестве наброска:

MYSQL *conn = NULL;
MYSQL *real_conn = NULL;

conn = mysql_init (NULL);

if (conn == NULL)
  return;

mysql_options (conn, MYSQL_SET_CHARSET_NAME, "utf8");
mysql_options (conn, MYSQL_INIT_COMMAND, "set names 'utf8';");

real_conn = mysql_real_connect (conn, host_name, user_name, password, ... );
if (real_conn == NULL)
{
fprintf(stderr,"fail: %s\n",mysql_error (conn));
mysql_close (conn);
}
if (mysql_select_db (real_conn, connect_info.db_name) != 0){
...
}
if (mysql_query(real_conn,"SELECT name,rate FROM emp_master"))
{
...
}

...

mysql_close (real_conn);
mysql_close (conn);

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру