Всем привет! Есть некая (своя) shared library. Она должна использовать пару функций из static library. Компиляция проблем не вызывает. Линковщий говорит все ОК. LDFLAGS = LDFLAGS=-shared -lgds -ldl -lcrypt -lGMKBytes Есть некий исполняемый бинарник, который через dl*() работает с этой shared library. Все ОК, пока дело не доходит до вывова функции из самописной же static library. И возникает такая ошибка: relocation error: /usr/lib/shared_library.so: undefined symbol: my_static_func На имена внимания не обращать - оне другое, а вот что за relocation error. Раньше я такого не встречал. Что я пропустил? any ideas ? -- Alex Radetsky AR2657-RIPE RAD-UANIC =================================================================== uanog mailing list. To Unsubscribe: send mail to majordomo@uanog.kiev.ua with "unsubscribe uanog" in the body of the message
On Wed, Mar 12, 2003 at 12:26:09PM +0200, Alex Radetsky wrote:
Всем привет!
Есть некая (своя) shared library. Она должна использовать пару функций из static library. Компиляция проблем не вызывает. Линковщий говорит все ОК.
LDFLAGS = LDFLAGS=-shared -lgds -ldl -lcrypt -lGMKBytes
Sorry, вот в чистом виде: LDFLAGS=-shared -lgds -ldl -lcrypt -lGMKBytes -- Alex Radetsky AR2657-RIPE RAD-UANIC =================================================================== uanog mailing list. To Unsubscribe: send mail to majordomo@uanog.kiev.ua with "unsubscribe uanog" in the body of the message
Hello Alex Radetsky! Wed, Mar 12, 2003 at 12:26:09PM +0200, rad wrote about "[uanog] Q по линковке under *NIX.": AR> LDFLAGS = LDFLAGS=-shared -lgds -ldl -lcrypt -lGMKBytes AR> AR> Есть некий исполняемый бинарник, который через dl*() работает с этой AR> shared library. AR> AR> Все ОК, пока дело не доходит до вывова функции из самописной же static library. AR> И возникает такая ошибка: AR> AR> relocation error: /usr/lib/shared_library.so: undefined symbol: my_static_func AR> AR> На имена внимания не обращать - оне другое, а вот что за relocation error. AR> Раньше я такого не встречал. Что я пропустил? может статическую либу надо собирать как -fPIC ? CU! -- //ShaD0w =================================================================== uanog mailing list. To Unsubscribe: send mail to majordomo@uanog.kiev.ua with "unsubscribe uanog" in the body of the message
On Wed, Mar 12, 2003 at 12:26:09PM +0200, Alex Radetsky wrote:
Всем привет!
Есть некая (своя) shared library. Она должна использовать пару функций из static library. Компиляция проблем не вызывает. Линковщий говорит все ОК.
LDFLAGS = LDFLAGS=-shared -lgds -ldl -lcrypt -lGMKBytes
Есть некий исполняемый бинарник, который через dl*() работает с этой shared library.
Все ОК, пока дело не доходит до вывова функции из самописной же static library. И возникает такая ошибка:
relocation error: /usr/lib/shared_library.so: undefined symbol: my_static_func
На имена внимания не обращать - оне другое, а вот что за relocation error. Раньше я такого не встречал. Что я пропустил?
any ideas ?
static lib'у можно влинковать в shared указав ее среди object files из которых собирается shared - file1.o file2.o /usr/local/lib/libstatic.a ldd /usr/lib/shared_library.so что-то показывает? -- Regards, Yaroslav Halchinsky =================================================================== uanog mailing list. To Unsubscribe: send mail to majordomo@uanog.kiev.ua with "unsubscribe uanog" in the body of the message
Wed, Mar 12, 2003 at 13:01:35, mci wrote about "[uanog] Re: [uanog] Q по линковке under *NIX.":
AR> LDFLAGS = LDFLAGS=-shared -lgds -ldl -lcrypt -lGMKBytes
rad, а не шёл бы ты в ru.unix.prog? Вполне полезно советую, там разберут ситуацию быстрее и по косточкам.
может статическую либу надо собирать как -fPIC ?
Это точно ни при чём - -fpic, -fPIC дают код максимально независимый от места загрузки в память, причём ценой замедления работы. А тут вопрос об экспорте символов из подключенной библиотеки. Боюсь, что пахнет написанием linker scripts... -netch- =================================================================== uanog mailing list. To Unsubscribe: send mail to majordomo@uanog.kiev.ua with "unsubscribe uanog" in the body of the message
On Wed, Mar 12, 2003 at 01:11:16PM +0200, Valentin Nechayev wrote:
Wed, Mar 12, 2003 at 13:01:35, mci wrote about "[uanog] Re: [uanog] Q по линковке under *NIX.":
AR> LDFLAGS = LDFLAGS=-shared -lgds -ldl -lcrypt -lGMKBytes
rad, а не шёл бы ты в ru.unix.prog? Вполне полезно советую, там разберут ситуацию быстрее и по косточкам.
Ладно, ушел.
может статическую либу надо собирать как -fPIC ?
Это точно ни при чём - -fpic, -fPIC дают код максимально независимый от места загрузки в память, причём ценой замедления работы. А тут вопрос об экспорте символов из подключенной библиотеки. Боюсь, что пахнет написанием linker scripts...
Ню-ню. Я-то думал, что просто пропустил что-то, а тут оказывается такое. ;))) -- Alex Radetsky AR2657-RIPE RAD-UANIC =================================================================== uanog mailing list. To Unsubscribe: send mail to majordomo@uanog.kiev.ua with "unsubscribe uanog" in the body of the message
participants (4)
-
Alex Radetsky
-
Michail Litvak
-
Valentin Nechayev
-
Yaroslav Halchinsky