Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Название темы: Функции в gcc
Показать сообщение отдельно

Новый участник


Сообщения: 11
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Подключения одних хедеров недостаточно. Нужно еще подключать динамическую библиотеку, в которой находятся откомпилированные функции.  Если я правильно понял, то вот такая строчка
Код: Выделить весь код
 gcc -c  test.c  
проходит и создает файл test.o. Зато
Код: Выделить весь код
 gcc -o test  test.o  
выдает указанную ошибку.
Можно попробовать сделать так:
Код: Выделить весь код
 gcc -o test -lmysqlclient test.o  
Здесь  опция -lmysqlclient указывает, что нужно подключить файл
libmysqlclient.so или libmysqlclient.a из стандартных путей (записаны в /etc/ld.so.conf).
Правда, тут есть другая проблема:
Хотя в заголовочных файлах mysql_connect присутствует, в библиотеке этой функции  нет (используя nm, можно посмотреть ее содержимое). Кроме того, в самом заголовке (по крайней мере, в моей версии) написано так:

Код: Выделить весь код
 
#ifdef USE_OLD_FUNCTIONS 
 
MYSQL *         STDCALL mysql_connect(MYSQL *mysql, const char *host, 
                                      const char *user, const char *passwd); 
/* ....  */ 
#endif
что наводит на размышления о том, что эти функции устарели (возможно, вместо них теперь нужно  использовать mysql_manager_connect или mysql_real_connect)

Кстати, о динамических библиотеках и компиляции с помощью gcc можно читать вот тут.

-------
С уважением, Figaro
http://romik.web.ur.ru


Отправлено: 12:12, 04-07-2004 | #3

Название темы: Функции в gcc