URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 7305
[ Назад ]

Исходное сообщение
"Работа с mysql из C, OC freebsd"

Отправлено SergeyJ2 , 10-Апр-08 08:27 
Добрый всем день.

Друзья, есть программа, написаная на С под ОС freebsd.
Что она делает: соединяется с сервером БД, выполняет запрос.

Вот код:
--------------------------------------------------------------
#include <mysql.h>
#include <stdio.h>

main() {
   MYSQL *pdb;
   MYSQL_RES *res;
   MYSQL_ROW row;

   char *server = "server";
   char *user = "user";
   char *password = "pass";
   char *database = "dbname";
  
   pdb = mysql_init(NULL);
  
   if (!mysql_real_connect(pdb, server,  user, password, database, 0, NULL, 0))
  {
      fprintf(stderr, "%s\n", mysql_error(pdb));
      exit(0);
   }

   if (mysql_query(pdb, "SELECT * FROM table1 WHERE status > 30"))
   {
      fprintf(stderr, "%s\n", mysql_error(pdb));
      exit(0);
   }

   res = mysql_use_result(pdb);
  
   while ((row = mysql_fetch_row(res)) != NULL)
      printf("%s %s\n", row[1], row[2]);

   mysql_free_result(res);
   mysql_close(pdb);

}
--------------------------------------------------------------

компилирую таким образом:
cc -I/usr/local/include/mysql test.c -lmysqlclient -lsocket -lnsl -lm -lz

в ответ такие ошибки:
prog.c:38:17: warning: no newline at end of file
/usr/bin/ld: cannot find -lmysqlclient

Помогите пожалуйста решить данную проблему.

Заранее всем благодарен за ответы.

PS.
mysql-client 5 версии, ставил из портов.


Содержание

Сообщения в этом обсуждении
"Работа с mysql из C, OC freebsd"
Отправлено phpcoder , 10-Апр-08 08:29 
[...]
>компилирую таким образом:
>cc -I/usr/local/include/mysql test.c -lmysqlclient -lsocket -lnsl -lm -lz
>
>в ответ такие ошибки:
>prog.c:38:17: warning: no newline at end of file
>/usr/bin/ld: cannot find -lmysqlclient

Ну не может он найти библиотеку эту. Попробуйте добавить -L/usr/local/lib


"Работа с mysql из C, OC freebsd"
Отправлено SergeyJ2 , 10-Апр-08 08:43 
>[...]
>>компилирую таким образом:
>>cc -I/usr/local/include/mysql test.c -lmysqlclient -lsocket -lnsl -lm -lz
>>
>>в ответ такие ошибки:
>>prog.c:38:17: warning: no newline at end of file
>>/usr/bin/ld: cannot find -lmysqlclient
>
>Ну не может он найти библиотеку эту. Попробуйте добавить -L/usr/local/lib

добавил -L/usr/local/lib/mysql
на -lmysqlclient ругаться перестал

начал на:

lsocket
lnsl
lm
lz


"Работа с mysql из C, OC freebsd"
Отправлено phpcoder , 10-Апр-08 08:50 
>добавил -L/usr/local/lib/mysql
>на -lmysqlclient ругаться перестал
>
>начал на:
>
>lsocket
>lnsl
>lm
>lz

Во-первых, как? Во-вторых, вы уверены, что все эти библиотеки нужны?

P.S. Кстати. Не нужно вас вручную все флаги и библиотеки указывать. Используйте `mysql_config --cflags` и `mysql_config --libs`


"Работа с mysql из C, OC freebsd"
Отправлено SergeyJ2 , 10-Апр-08 09:15 
>[оверквотинг удален]
>>
>>lsocket
>>lnsl
>>lm
>>lz
>
>Во-первых, как? Во-вторых, вы уверены, что все эти библиотеки нужны?
>
>P.S. Кстати. Не нужно вас вручную все флаги и библиотеки указывать. Используйте
>`mysql_config --cflags` и `mysql_config --libs`

Да, вы правы. Остальные библиотеки были не нужны.

Программа успешно откомпилировалась.

Благодарю за помощь !
:)