2014-02-05 24 views
3

是否有可能將Boost日誌構建爲動態庫(.dll/.so),但是在靜態Boost構建中這樣做?我希望所有其他Boost庫都是靜態的,只有Boost Log作爲.dll(因爲幾個.dll在同一個應用程序中使用它)。可以在靜態Boost構建中將Boost Log建成.dll/.so嗎?

是否所有Boost庫都需要動態獲取Boost Log .dll?我試着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 

回答

2

您可以通過指定唯一要使用--with-<library>開關,例如建庫縮小構建的範圍。 ,

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

+0

'鏈路共享= --with日誌鏈接=靜態線程=多運行時鏈接= static':錯誤:鏈接=帶運行時鏈接=靜態共享一起是不允許的。這樣的屬性組合要麼是不可能的,要麼是太危險以致於無法使用 –

+0

@RazvanCojocaru當然,刪除runtime-link-static與鏈接= shared是衝突的 - 你表示要爲動態鏈接構建提升。 – mockinterface

+0

不,我想所有的Boost庫都是靜態的(使用靜態運行時),除了Boost日誌,它應該是動態的,但仍然使用靜態運行時和靜態Boost庫(因爲它會在一堆內部使用)動態加載的DLL和加載它們的可執行文件)。 –