[英]Boost libraries - build only what I need
我下載了Boost庫,現在我只想構建一些庫。 什么是正確的命令? 顯然,內置類型=完整選項給了我太多。 我正在使用Windows XP,並希望使用Bjam編譯Boost和MinGW以最終使用它。 目前我認為我需要庫Boost.filesystem,Boost.ProgramOptions和Boost.System。 另一個問題:我在哪里放置僅限標頭的庫?
在“ 入門”的 步驟5.2.4中 ,您可以指示b2
構建哪些庫:
./b2 --with-program_options --with-filesystem --with-system
或者,使用./b2 --show-libraries
查看不是僅標頭的所有庫的列表。
以下是該頁面的摘錄:
特別是,為了限制建設所花費的時間,您可能會對以下內容感興趣:
- 使用
--show-libraries
查看庫名列表- 限制使用
--with-<library-name>
或--without-<library-name>
選項構建哪些庫- 通過向命令行添加發布或調試來選擇特定的構建變體。
注意: b2
命令取決於boost版本,因此根據你的boost版本使用以下命令(另外,在這種情況下,使用--with-libraries=<comma-seperated-library-names>
版本而不是--with-<library-name>
):
1.38.0
./configure
1.38.0
及更早版本 ./bootstrap.sh
從1.39.0
開始直到1.46.0
這些答案對我不起作用。 在Windows上,這對我有用:
b2.exe -with-LIBRARY
例如,
b2.exe -with-test
BCP實用程序是用於提取Boost子集的工具。 它對於希望與Boost分開分發庫的Boost作者以及希望將Boost子集與其應用程序一起分發的Boost用戶非常有用。
當前版本的Boost(1.50.0)使用Boost.Build。 構建BCP的新工作流程如下:
從根Boost目錄中,鍵入:
bootstrap.bat
然后,一旦構建了Boost.Build,鍵入:
b2 tools/bcp
要提取,例如僅進行interprocess
,您可以使用:
$ mkdir /tmp/interprocess #bcp needs this
$ bcp interprocess /tmp/interprocess
這會將進程間及其依賴項復制到/tmp/interprocess
。
我有同樣的問題。 但我發現了一種創建必要文件的方法。
要遵循的步驟:
首先輸入代碼:
bootstrap.bat
然后輸入以下代碼以生成lib文件:
b2.exe link=static runtime-link=static --with-chrono --with-date_time --with-filesystem --with-program_options --with-system --toolset=msvc-10.0 define=BOOST_USE_WINAPI_VERSION=0x0500
庫文件將在stage文件夾中創建。
我對Boost 1.55庫的最后一次構建嘗試令人失望。 所有構建幾個庫的嘗試都只是輸出完全混亂。
BJam要么嘗試構建所有內容,要么只構建所請求的內容,而是在“bin.v2 / [long-random-path]”文件夾(每個目錄庫)中使用垃圾,這很難將鏈接庫復制到某個地方其他。
我不小心找到了正確的方法來構建和收集我想要的庫在一個地方沒有任何其他廢話:
bjam ... --with- [library1] --with- [library2] stage
對於看到錯誤消息的任何人的附加說明: "error: wrong library name '<name of library>' in the --with-<library> option."
。
如果你像我一樣聰明,並且只將下載的boost
子目錄提取到你的系統上以最小化空間, b2
將無法找到那些不是標題庫的源代碼和構建選項 -只要。 即你也需要lib
子目錄(和tools
)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.