簡體   English   中英

提升庫 - 只構建我需要的東西

[英]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.sh1.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

我有同樣的問題。 但我發現了一種創建必要文件的方法。

要遵循的步驟:

  1. 如果您有Microsoft Visual Studio 2010,則以管理員模式打開Microsoft Visual Studio命令提示符(2010)。
  2. 首先輸入代碼:

     bootstrap.bat 
  3. 然后輸入以下代碼以生成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 
  4. 庫文件將在stage文件夾中創建。

我對Boost 1.55庫的最后一次構建嘗試令人失望。 所有構建幾個庫的嘗試都只是輸出完全混亂。

BJam要么嘗試構建所有內容,要么只構建所請求的內容,而是在“bin.v2 / [long-random-path]”文件夾(每個目錄庫)中使用垃圾,這很難將鏈接庫復制到某個地方其他。

我不小心找到了正確的方法來構建和收集我想要的庫在一個地方沒有任何其他廢話:

bjam ... --with- [library1] --with- [library2] stage

  • 在一個文件夾中構建和收集庫需要“stage”選項:/ stage / lib
  • 只需要構建所需的庫,需要“--with- [library]”選項。

對於看到錯誤消息的任何人的附加說明: "error: wrong library name '<name of library>' in the --with-<library> option."

如果你像我一樣聰明,並且只將下載的boost子目錄提取到你的系統上以最小化空間, b2將無法找到那些不是標題庫的源代碼和構建選項 -只要。 即你也需要lib子目錄(和tools )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM