The OpenNET Project / Index page

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



Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (MySQL)
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Клиент на С для MYSQL не видит функции MYSQL., DH (?), 27-Фев-04, (0) [смотреть все]

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


1. "Клиент на С для MYSQL не видит функции MYSQL."  +/
Сообщение от solov (?), 27-Фев-04, 20:10 
Тебе надо просто подключит все правильно. Где -lmysqlclient? Для того что-бы долго не искать где у тебя лежат либы и инклуды с mysql идет маленькая програмка mysql_config. Тебе остается только сделать следуещее
gcc -o one one.c 'mysql_config --cflags' 'mysql_config --libs'


>Пробую програмить под Linux. Хочу поюзать мускул из сишки.
>Поставил мускул 4.1. - всё по дефолту.
>Запустил, проверил через mysql -u root mysql -p.
>Базы посоздавал, юзверей. Всё ок.
>
>Дошёл до с.
>Набил исходник - простой до невменяемости:
>//============= one.c =============
>#include <stdio.h>
>#include <mysql/mysql.h>
>static MYSQL *d_sql;
>int main()
>{
>  mysql_init(d_sql);
>  return 0;
>}
>//=================
>Make file сделал
>//========Makefile=========
>one: one.c
>        gсс -o one one.c
>
>//=================
>Самое интерестное.
>Делаю make и получается фигня.
>//========фигня=========
># make
>gсс -o one one.c
>/tmp/ccw5wJiJ.o: In function `main':
>/tmp/ccw5wJiJ.o(.text+0x10): undefined reference to `mysql_init'
>collect2: ld returned 1 exit status
>make: *** [one] Error 1
>//======================
>
>Насколько я знаю из сишки - он мне написал, что неопределена связь
>(реализация, тобишь) mysql_init.
>В mysql.h файле она есть - проверял.
>Так какого фига..........!!!!!!!!!!
>
>Вопрос по ходу - в h файлах - прототипы функций, а где
>в линухе хранятся реализации функций и как он связывает при компиляции!
>
>
>Заранее благодарен хоть на какую нибудь инфу!


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

2. "Клиент на С для MYSQL не видит функции MYSQL."  +/
Сообщение от DHemail (?), 27-Фев-04, 22:05 
>Тебе надо просто подключит все правильно. Где -lmysqlclient? Для того что-бы долго
>не искать где у тебя лежат либы и инклуды с mysql
>идет маленькая програмка mysql_config. Тебе остается только сделать следуещее
>gcc -o one one.c 'mysql_config --cflags' 'mysql_config --libs'

Круто - получилось!
Спасибочки!
А как по поводу общеобразовательных моментов?
Извините за наглость! :)

>>Вопрос по ходу - в h файлах - прототипы функций, а где
>>в линухе хранятся реализации функций и как он связывает при компиляции!

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

3. "Клиент на С для MYSQL не видит функции MYSQL."  +/
Сообщение от DS (??), 30-Апр-04, 21:12 
>Тебе надо просто подключит все правильно. Где -lmysqlclient? Для того что-бы долго
>не искать где у тебя лежат либы и инклуды с mysql
>идет маленькая програмка mysql_config. Тебе остается только сделать следуещее
>gcc -o one one.c 'mysql_config --cflags' 'mysql_config --libs'
У меня на флаг 'mysql_config --libs' выводит следующее:
/usr/bin/ld: cannot find -lmysqlclient
collect2: ld returned 1 exit status
Что делать? 8) Подскажите плз..
>
>
>>Пробую програмить под Linux. Хочу поюзать мускул из сишки.
>>Поставил мускул 4.1. - всё по дефолту.
>>Запустил, проверил через mysql -u root mysql -p.
>>Базы посоздавал, юзверей. Всё ок.
>>
>>Дошёл до с.
>>Набил исходник - простой до невменяемости:
>>//============= one.c =============
>>#include <stdio.h>
>>#include <mysql/mysql.h>
>>static MYSQL *d_sql;
>>int main()
>>{
>>  mysql_init(d_sql);
>>  return 0;
>>}
>>//=================
>>Make file сделал
>>//========Makefile=========
>>one: one.c
>>        gсс -o one one.c
>>
>>//=================
>>Самое интерестное.
>>Делаю make и получается фигня.
>>//========фигня=========
>># make
>>gсс -o one one.c
>>/tmp/ccw5wJiJ.o: In function `main':
>>/tmp/ccw5wJiJ.o(.text+0x10): undefined reference to `mysql_init'
>>collect2: ld returned 1 exit status
>>make: *** [one] Error 1
>>//======================
>>
>>Насколько я знаю из сишки - он мне написал, что неопределена связь
>>(реализация, тобишь) mysql_init.
>>В mysql.h файле она есть - проверял.
>>Так какого фига..........!!!!!!!!!!
>>
>>Вопрос по ходу - в h файлах - прототипы функций, а где
>>в линухе хранятся реализации функций и как он связывает при компиляции!
>>
>>
>>Заранее благодарен хоть на какую нибудь инфу!


Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

4. "Клиент на С для MYSQL не видит функции MYSQL."  +/
Сообщение от solov (??), 01-Май-04, 11:50 
На сколько я знаю mysqlclient.so должен лежать в /usr/lib/. Попробуй запустить в консоле mysql если появится
mysql>
то эта либа точно есть. ищи ее с помощью find. Когда найдеш тогда не забудь указать компилятору путь к либе -L / .... -lmysqlclient. Ну а если ее у тебя нет тогда качай с инета и копируй в /usr/lib
Ответить | Правка | Наверх | Cообщить модератору

5. "Клиент на С для MYSQL не видит функции MYSQL."  +/
Сообщение от DS (??), 01-Май-04, 13:08 
>На сколько я знаю mysqlclient.so должен лежать в /usr/lib/. Попробуй запустить в
>консоле mysql если появится
>mysql>
>то эта либа точно есть. ищи ее с помощью find. Когда найдеш
>тогда не забудь указать компилятору путь к либе -L / ....
>-lmysqlclient. Ну а если ее у тебя нет тогда качай с
>инета и копируй в /usr/lib
делаю locate mysqlclient
находит
/usr/lib/mysql/libmysqlclient.so и еще несколько версий.

делаю
gcc -L/usr/include/mysql -L/usr/lib/mysql -llibmysqlclient.so proga.c
gcc -L/usr/include/mysql -L/usr/lib/mysql -lmysqlclient.so proga.c
gcc -L/usr/include/mysql -L/usr/lib/mysql -llibmysqlclient proga.c
gcc -L/usr/include/mysql -L/usr/lib/mysql -llibmysqlclient_r.so.10.0.0 proga.c

И всеравно пишет /usr/bin/ld: cannot find
-llibmysqlclient.so и тп.
collect2: ld returned 1 exit status
Че делать? 8)

П.С. С праздничокм. 8))))


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

6. "Клиент на С для MYSQL не видит функции MYSQL."  +/
Сообщение от DS (??), 01-Май-04, 20:48 
Все разобрался..;)
>>На сколько я знаю mysqlclient.so должен лежать в /usr/lib/. Попробуй запустить в
>>консоле mysql если появится
>>mysql>
>>то эта либа точно есть. ищи ее с помощью find. Когда найдеш
>>тогда не забудь указать компилятору путь к либе -L / ....
>>-lmysqlclient. Ну а если ее у тебя нет тогда качай с
>>инета и копируй в /usr/lib
>делаю locate mysqlclient
>находит
>/usr/lib/mysql/libmysqlclient.so и еще несколько версий.
>
>делаю
>gcc -L/usr/include/mysql -L/usr/lib/mysql -llibmysqlclient.so proga.c
>gcc -L/usr/include/mysql -L/usr/lib/mysql -lmysqlclient.so proga.c
>gcc -L/usr/include/mysql -L/usr/lib/mysql -llibmysqlclient proga.c
>gcc -L/usr/include/mysql -L/usr/lib/mysql -llibmysqlclient_r.so.10.0.0 proga.c
>
>И всеравно пишет /usr/bin/ld: cannot find
>-llibmysqlclient.so и тп.
>collect2: ld returned 1 exit status
>Че делать? 8)
>
>П.С. С праздничокм. 8))))


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

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

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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