The OpenNET Project / Index page

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




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Ошибка компилятора , !*! Andrey, 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);
}

  • Ошибка компилятора , !*! Michael, 11:42 , 30-Дек-09 (1)
    >В общем час назад всё работало, и тут начало выдавать ошибку:
    >[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? и проверьте, действительно ли там есть его библиотека

    • Ошибка компилятора , !*! Andrey, 12:29 , 30-Дек-09 (2)
      Выдаёт:
      -rdynamic -L/usr/lib/mysql -lmysqlclient -lz -lcrypt -lnsl -lm -lssl -lcrypto
      • Ошибка компилятора , !*! Andy_zzzzzz, 14:34 , 30-Дек-09 (3)
        >Выдаёт:
        >-rdynamic -L/usr/lib/mysql -lmysqlclient -lz -lcrypt -lnsl -lm -lssl -lcrypto

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


        • Ошибка компилятора , !*! Andrey, 14:37 , 30-Дек-09 (4)
          [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

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

  • Ошибка компилятора , !*! Slavaz, 14:49 , 30-Дек-09 (5)
  • Ошибка компилятора , !*! Slavaz, 14:55 , 30-Дек-09 (6)
    и немного странный код. Предлагаю шаблонно, в качестве наброска:

    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);




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

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