Здравствуйте!
Помогите пожалуйчто решить сл. проблему: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]
а так?
g++ -Wall -o prog `mysql_config --cflags` prog.cpp `mysql_config --libs`
>а так?
>
>g++ -Wall -o prog `mysql_config --cflags` prog.cpp `mysql_config --libs`
>vic, чудеса!! ;) Большое спасибо.
Что почитать посоветуете, чтобы в дальнейшем не возникало подобных вопросов?
>>а так?
>>
>>g++ -Wall -o prog `mysql_config --cflags` prog.cpp `mysql_config --libs`
>>
>
>vic, чудеса!! ;) Большое спасибо.
>Что почитать посоветуете, чтобы в дальнейшем не возникало подобных вопросов?man ld ? =) и все что найдется в гугле на тему линковка, компановка в линухе.
все просто порядок указания параметров имеет значение.
сначала prog.cpp потом либы, ессно путь к либе (ключ -L) должен быть перед самой либой.
ну и если проект недостаточно большой чтобы юзать autotools, то лучше (имхо) использовать подстановку списка либ и cflags через config (как я и сделал в примере), вместо прямого прописывания.