Можно ли собрать журнал Boost в виде .dll/.so в статической сборке Boost?

Можно ли собрать журнал Boost Log как динамическую библиотеку (.dll/.so), но сделать это в рамках статической сборки Boost? Я бы хотел, чтобы все остальные библиотеки Boost были статическими, а журнал Boost Log — только .dll (поскольку несколько .dll используют его в одном приложении).

Должны ли все библиотеки Boost быть динамическими, чтобы получить файл Boost Log .dll? Я пытался добавить define=BOOST_LOG_DYN_LINK в командную строку bjam, но безрезультатно:

bjam --toolset=msvc-10.0 address-model=64 variant=release,debug link=static threading=multi runtime-link=static define=BOOST_LOG_DYN_LINK

person Razvan Cojocaru    schedule 05.02.2014    source источник


Ответы (1)


Вы можете сузить объем сборки, указав только ту библиотеку, которую хотите построить, с помощью переключателя --with-<library>, например,

./bjam link=shared --with-log ...

person mockinterface    schedule 07.02.2014
comment
link=shared --with-log link=static threading=multi runtime-link=static: ошибка: link=shared вместе с runtime-link=static не допускается. такая комбинация свойств либо невозможна, либо слишком опасна для какой-либо пользы - person Razvan Cojocaru; 11.02.2014
comment
@RazvanCojocaru Удалите runtime-link-static, конечно, он конфликтует с link=shared — вы указали, что хотите создать ускорение для динамического связывания. - person mockinterface; 12.02.2014
comment
Нет, я бы хотел, чтобы все библиотеки Boost были статическими (со статической средой выполнения), кроме журнала Boost, который должен быть динамическим, но при этом использовать статическую среду выполнения, и статических библиотек Boost (поскольку они будут использоваться в куче динамически загружаемые библиотеки DLL и исполняемый файл, который их загружает). - person Razvan Cojocaru; 12.02.2014
comment
Поскольку технически ваш ответ является лучшим, что можно сделать с помощью bjam, и кажется, что мой вопрос был недостаточно точным, я отмечу его как ответ для дальнейшего использования. Спасибо. - person Razvan Cojocaru; 12.02.2014