[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