LINUX.ORG.RU

Сборка .so библиотеки с относительными зависимостями


0

0

Есть проект PPP. Из него собирается несколько shared библиотек:
lib1.so, lib2.so... Причем так, что lib1.so динамически линкуется к
нескольким, ранее собранным здесь же, библиотекам.

Находясь в директории /dir/prj/libs, зависимость от нескольких
библиотек будет иметь вид:
lib1.so -> /dir/prj/lib2.so, /dir/prj/lib100.so
Т.е. в зависимости присутствует абсолютный путь. Какие аргументы
надо передать gcc и линкеру (в идеале, configure-скрипту), что
бы динамическая линковка зависимых библиотек происходила без
абсолютного пути? Т.е.: lib1.si -> lib2.so, lib100.so

Спасибо.

anonymous

Ответ на: комментарий от dilmah

LDFLAGS='-rpath .' ./configure

--> config.log:
configure:2006: gcc   -rpath . conftest.c  >&5
gcc: unrecognized option '-rpath'
/usr/bin/ld: .: No such file: File format not recognized
collect2: ld returned 1 exit status
configure:2009: $? = 1

К особенностям вопроса можно отнести, что библиотеки сторонние
и все собирается с помощью configure-скрипта.

Если модифицировать Makefile, исправив "-rpath ${path}" на "-rpath .",
выводится ошибка:

libtool: link: only absolute run-paths are allowed

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


у меня нормально собралась .so библиотека вот такой строкой:
$(CC) $(CFLAGS) $^ -shared -Xlinker -rpath -Xlinker . -o $@

То есть я добавил опции -Xlinker -rpath -Xlinker .
Никаких ошибок не выдало. Но что в результате получилось -- хз.

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

Тут libtool занимается линковкой. При "-rpath ." сообщает,
что: libtool: link: only absolute run-paths are allowed

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