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

Исходное сообщение
"Работа с MySQL С++"

Отправлено Максим , 18-Фев-09 00:20 
Здравствуйте!
Помогите пожалуйчто решить сл. проблему:

prog.cpp

#include <mysql.h>
int main () {
   MYSQL mysql;
   mysql_init(&mysql);
}

Компилирую:

serv# g++ -o prog -I/usr/local/mysql/include -L/usr/local/mysql/lib -lmysqlclient prog.cpp

Получаю:

/var/tmp//ccTPKIw3.o(.text+0x471): In function `main':
: undefined reference to `mysql_init'

Что только не перепробывал!
Помогите плз...
Столько сайтов облазил, везде сказанно, что дело в

-L/usr/local/mysql/lib -lmysqlclient
....
Ничего не понимаю, все же ок вроде бы.......
Почему undefined reference to `mysql_init'?!?

PS:

serv# /usr/local/mysql/bin/mysql_config
Usage: /usr/local/mysql/bin/mysql_config [OPTIONS]
Options:
        --cflags         [-I/usr/local/mysql/include]
        --include        [-I/usr/local/mysql/include]
        --libs           [-L/usr/local/mysql/lib -lmysqlclient -lz -lcrypt -lm]
        --libs_r         [-L/usr/local/mysql/lib -lmysqlclient_r -lz -lcrypt -lm  -lpthread]
        --socket         [/tmp/mysql.sock]
        --port           [3306]
        --version        [5.0.51a]
        --libmysqld-libs [-L/usr/local/mysql/lib -lmysqld -lz -lcrypt -lm  -lpthread]


Содержание

Сообщения в этом обсуждении
"Работа с MySQL С++"
Отправлено vic , 18-Фев-09 00:42 
а так?

g++ -Wall -o prog `mysql_config --cflags` prog.cpp `mysql_config --libs`



"Работа с MySQL С++"
Отправлено Максим , 18-Фев-09 01:04 
>а так?
>
 
>g++ -Wall -o prog `mysql_config --cflags` prog.cpp `mysql_config --libs`
>

vic, чудеса!! ;) Большое спасибо.
Что почитать посоветуете, чтобы в дальнейшем не возникало подобных вопросов?


"Работа с MySQL С++"
Отправлено vic , 18-Фев-09 01:32 
>>а так?
>>
 
>>g++ -Wall -o prog `mysql_config --cflags` prog.cpp `mysql_config --libs`
>>

>
>vic, чудеса!! ;) Большое спасибо.
>Что почитать посоветуете, чтобы в дальнейшем не возникало подобных вопросов?

man ld ? =) и все что найдется в гугле на тему линковка, компановка в линухе.
все просто порядок указания параметров имеет значение.
сначала prog.cpp потом либы, ессно путь к либе (ключ -L) должен быть перед самой либой.
ну и если проект недостаточно большой чтобы юзать autotools, то лучше (имхо) использовать  подстановку списка либ и cflags через config (как я и сделал в примере), вместо прямого прописывания.