[devel] Circular link for libraries

Viacheslav Dubrovskyi dubrsl на gmail.com
Сб Апр 27 21:51:17 MSK 2013


27.04.2013 20:45, Ivan A. Melnikov пишет:
> On Fri, 26 Apr 2013 14:23:29 +0700
> REAL <real на kemsu.ru> wrote:
>
>> Привет!
>>
>> Есть проект на CMake, там необходимо выполнить взаимолинковку пары 
>> библиотек, типа такого:
>>
>> target_link_libraries(foo bar)
>> target_link_libraries(bar foo)
>>
>> cmake на это резонно ругается, но без таких взаимолинковок сборка не 
>> проходит в части verify-elf. Есть какой-нибудь трюк, чтобы это 
>> заработало? В autotools такие вещи делались довольно просто.
> Не расскажите, как? А то я не представляю себе, как можно слинковаться
> с библиотекой, которой ещё нет.
Недавно патчил pacemaker на эту тему.
Вот тут собирается libcib которая должна линковться с libpe. И на оборот.
Добавляем дополнительное правило. При этом собирается libpe и с ней
линкуется libcib. Потом, когда доходит очередь до неё, она перелинкуется
опять с ранее собранной либой.

libcib_la_LDFLAGS    = -version-info 3:0:0
-L$(top_builddir)/lib/pengine/.libs
libcib_la_LIBADD        = $(CRYPTOLIB)
$(top_builddir)/lib/pengine/libpe_rules.la
$(top_builddir)/lib/common/libcrmcommon.la
libcib_la_CFLAGS    = -I$(top_srcdir)
 
libcib_la_DEPENDENCIES  = libpe_rules
libpe_rules:
    make -C ../../lib/pengine libpe_rules.la

Вообщем как выяснилось это по сути плохо, т.к. возникает резонный
вопрос: - а зачем выделять тогда либы?

-- 
WBR,
Viacheslav Dubrovskyi



Подробная информация о списке рассылки Devel