Как указать зависимости компоновщика в boost.build Jamroot

Когда я пытаюсь скомпилировать exec с b2 toolset=clang он использует команду связывания, такую ​​как:

clang++ -L/apps/bzip2/lib -L/apps/zlib/lib -o fixfast/bin/clang-linux-3.3/release/link-static/fixfast-mds_MCAST fixfast/bin/clang-linux-3.3/release/link-static/fixfastDataD.o /apps/boost/root/bin.v2/libs/date_time/build/clang-linux-3.3/release/link-static/libboost_date_time.a ~/infra_install/lib/libfixfast.a ~/infra_install/lib/libCDef.a -lbz2 -lz -lpthread

и терпит неудачу с длинным списком неопределенных ссылок в boost, тогда как следующая переупорядоченная версия прекрасно связывается:

clang++ -L/apps/bzip2/lib -L/apps/zlib/lib -o fixfast/bin/clang-linux-3.3/release/link-static/fixfast-mds_MCAST fixfast/bin/clang-linux-3.3/release/link-static/fixfastDataD.o ~/infra_install/lib/libfixfast.a ~/infra_install/lib/libCDef.a /apps/boost/root/bin.v2/libs/date_time/build/clang-linux-3.3/release/link-static/libboost_date_time.a  -lbz2 -lz  -lpthread

Я считаю, что способ, которым я указываю связь зависимости libCDef на /boost/date_time//boost_date_time Вероятно, недостаточно иметь правильный порядок во время ссылки.

CDef / Jamroot:

project : usage-requirements <include>~/infra_install ;

lib CDef
: [ glob *.cpp ]
:
<library>/boost/date_time//boost_date_time
<library>/boost/filesystem//boost_filesystem
<library>/boost/system//boost_system
<library>/boost/iostreams//boost_iostreams
<link>static
;

install libCDef
: CDef
: <install-type>LIB
<variant>release:<location>"~/infra_install/lib": release
;

Мне нужно указать, что CDef зависит от boost_date_time и, следовательно, компоновщик должен упорядочить его как таковой.

0

Решение

На основе http://www.boost.org/boost-build2/doc/html/bbv2/faq/liborder.html
Этому способствовал Стивен Ватанабе.
Я пытался помочь компоновщику с помощью <use> команды. Хотя это работает для gcc, для clang-linux и intel-linux это не так.

Тогда Кохей Такаши просвещал меня к решению, которое должно было изменить лязг-linux.jam а также Intel-linux.jam

https://svn.boost.org/trac/boost/ticket/5820

К сожалению, это был разговор о почтовой группе boost.build, но спасибо, ребята!

0

Другие решения

Других решений пока нет …