Делайте постоянные ссылки на другие общие библиотеки

в настоящее время я создаю общую библиотеку «libmylib.so», используя libtool с такими утверждениями:

libtool --mode=compile g++ -Wall -fPIC -shared $(CFLAGS) $(LFLAGS) $(LSTATIC)
libtool --mode=link g++ -shared -export-symbols-regex beam_ -rpath /usr/lib -lotherlib

Библиотека, созданная с помощью этого, зависит от другой (нестатической) библиотеки «libotherlib.so», поэтому я использую оператор «-lotherlib».

Теперь, когда я создаю исполняемый файл, который ссылается на libmylib.so, происходит что-то странное: мне нужно снова ссылаться на libotherlib.so, что означает, что я должен добавить оператор «-lotherlib» и для этого исполняемого файла.

Таким образом, кажется, что прежняя ссылка на libotherlib.so при сборке libmylib.so не будет постоянной. Но как я могу изменить это? Как создать libmylib.so, чтобы он неявно знал о своей зависимости от разделяемой библиотеки libotherlib.so?

Спасибо!


person Elmi    schedule 19.02.2013    source источник


Ответы (1)


Ответ, кажется, такой же, как и для этого вопроса: build">Связать статическую библиотеку с общей во время сборки?

Большая разница: когда общие объекты указаны для связывания вместо статических, они не включаются, но сгенерированная общая библиотека запоминает свою зависимость от этих объектов.

person Elmi    schedule 22.02.2013