LINUX.ORG.RU

Как правильно собрать программу со статически собранным mysql?


0

0

Как правильно собрать программу со статически собранным mysql? Пробовал 
добавить libmysqlclient.a:

gcc main.o /usr/lib/mysql/libmysqlclient_r.a /usr/lib/mysql/libmysqlclient.a

но он ругается:

main.o: In function `pbmysql::fini()':
main.cpp:(.text+0x75): undefined reference to `mysql_close'
main.o: In function `pbmysql::connectdb()':
main.cpp:(.text+0xdf): undefined reference to `mysql_real_connect'
main.cpp:(.text+0xf3): undefined reference to `mysql_error'
main.cpp:(.text+0x131): undefined reference to `mysql_select_db'
...и далее по списку...

Заранее спасибо!!!
★★★★★

Ну очевидно же, gcc main.o -L/usr/lib/mysql -lmysqlclient .

*_r, помнится, набор тех же функций, но threadsafe. То есть, указывать надо одну из 2-х библиотек.

anonymous
()
Ответ на: комментарий от anonymous

Не заметил про статик. Тогда таки или gcc main.o /usr/lib/mysql/libmysqlclient.a или gcc -static main.o -L/usr/lib/mysql -lmysqlclient.

anonymous
()
Ответ на: комментарий от anonymous

gcc -static main.o -L/usr/lib/mysql -lmysqlclient -o prog -lstdc++ -lmysqlclient
/usr/lib/mysql/libmysqlclient.a(mf_pack.o): In function `unpack_dirname':
(.text+0x3ef): warning: Using 'getpwnam' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/lib/mysql/libmysqlclient.a(libmysql.o): In function `read_user_name':
(.text+0x4b18): warning: Using 'getpwuid' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/lib/mysql/libmysqlclient.a(mf_pack.o): In function `unpack_dirname':
(.text+0x3fe): warning: Using 'endpwent' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/lib/mysql/libmysqlclient.a(my_gethostbyname.o): In function `my_gethostbyname_r':
(.text+0x3c): warning: Using 'gethostbyname_r' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/lib/mysql/libmysqlclient.a(libmysql.o): In function `mysql_server_init':
(.text+0x53c9): warning: Using 'getservbyname' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/lib/mysql/libmysqlclient.a(libmysql.o): In function `fetch_float_with_conversion':
(.text+0x306f): undefined reference to `floor'
/usr/lib/mysql/libmysqlclient.a(libmysql.o): In function `fetch_float_with_conversion':
(.text+0x3081): undefined reference to `floor'
/usr/lib/mysql/libmysqlclient.a(password.o): In function `check_scramble_323':
(.text+0x620): undefined reference to `floor'
/usr/lib/mysql/libmysqlclient.a(password.o): In function `check_scramble_323':
(.text+0x663): undefined reference to `floor'
/usr/lib/mysql/libmysqlclient.a(password.o): In function `scramble_323':
(.text+0x730): undefined reference to `floor'
/usr/lib/mysql/libmysqlclient.a(password.o):(.text+0x76b): more undefined references to `floor' follow
/usr/lib/mysql/libmysqlclient.a(my_compress.o): In function `my_uncompress':
(.text+0x56): undefined reference to `uncompress'
/usr/lib/mysql/libmysqlclient.a(my_compress.o): In function `my_compress_alloc':
(.text+0xea): undefined reference to `compress'
collect2: выполнение ld завершилось с кодом возврата 1
make: *** [pbproxy] Ошибка 1

cyclon ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.