повысить сборку site-config.jam на gentoo

Я использую сборку boost в своем проекте, и теперь я хочу использовать boost date_time. Я погуглил и обнаружил, что его следует (вероятно) использовать следующим образом:

exe test : test.cpp /boost/date_time//date_time ;

но потом я получаю это сообщение:

error: Unable to find file or target named
error:     '/boost/date_time//date_time'
error: referred from project at
error:     '.'

(когда я использую -lboost_date_time как флаг gcc вручную, он работает правильно) Я думал, что библиотека oly должна быть добавлена ​​​​в site-config.jam, поэтому я попытался добавить это:

project /boost/date_time ;
lib date_time ;

но это не имеет никакого эффекта.

Что я делаю не так?

Такс

Изменить: я не ищу решение, которое просто работает. Мне нужно что-то, что будет работать для всех с правильной установкой библиотек boost.build и boost.


person cube    schedule 16.06.2009    source источник


Ответы (2)


Я рекомендую вам взглянуть на модуль contrib/boost.jam в текущих версиях Boost.Build. Это позволяет почти автоматически объявлять необходимые цели для каждой библиотеки.

Или оригинальная попытка не совсем верна. Чтобы "/site-config//boost_date_time" работал, вам нужно иметь это в site-config.jam:

project site-config ;
searched-lib boost_date_time ;

Это будет работать в Linux, если файл библиотеки называется libboost_date_time.so (как в случае, если Boost был собран с параметром --layout=system). В Windows вам на самом деле ничего этого не нужно благодаря автосвязыванию.

person Vladimir Prus    schedule 21.06.2009

У меня нет большого опыта сборки boost, но я считаю, что ваша спецификация в конфигурации сайта отключена (см. здесь и здесь). Если вы пытаетесь поместить предварительно созданный boost_date_time в конфигурацию вашего сайта, то это должно быть:

project site-config ;
lib b_date_time : : <name>boost_date_time ;

И в вашем каталоге:

exe test : test.cpp /site-config//b_date_time ;
person Todd Gardner    schedule 21.06.2009
comment
Спасибо за ответ. Это работает, но правильный ли это способ указать предварительно созданные библиотеки повышения? То, что я пытаюсь сделать, это то, что когда кто-то со свежей (и правильной) установкой сборки boost вытаскивает мой проект, он должен просто скомпилироваться. Я должен добавить это к вопросу :-) - person cube; 21.06.2009
comment
Я почти уверен, что это сработает, если кто-то установил boost_date_time, но я не могу сказать, является ли это передовой практикой. У вас может быть больше поддержки в списке рассылки Boost: boost.org/community/groups.html. #джамбуст - person Todd Gardner; 21.06.2009