版權 © 2009 John Maddock
依據 Boost 軟體授權條款 1.0 版發布。(請參閱隨附的 LICENSE_1_0.txt 檔案或複製於 https://boost.dev.org.tw/LICENSE_1_0.txt)
bcp 工具是一個用於提取 Boost 子集的工具,它對想要將其函式庫與 Boost 分開發行的 Boost 作者很有用,並且對想要將 Boost 子集與其應用程式一起發行的 Boost 使用者也很有用。
bcp 也可以報告您的程式碼依賴於 Boost 的哪些部分,以及這些相依性使用的授權。
bcp scoped_ptr /foo
將 boost/scoped_ptr.hpp 和相依性複製到 /foo。
bcp boost/regex.hpp /foo
將 boost/regex.hpp 和所有相依性(包括 regex 原始碼 (在 libs/regex/src 中) 和建置檔案 (在 libs/regex/build 中))複製到 /foo。不複製 regex 文件、測試或範例程式碼。也不複製 Boost.Build 系統。
bcp regex /foo
將完整的 regex 函式庫 (在 libs/regex 中) 包括相依性(例如 regex 測試程式所需的 boost.test 原始碼)複製到 /foo。不複製 Boost.Build 系統。
bcp --namespace=myboost --namespace-alias regex config build /foo
將完整的 regex 函式庫 (在 libs/regex 中) 加上 config 函式庫 (libs/config) 和建置系統 (tools/build) 複製到 /foo,包括所有相依性。同時將 boost 命名空間重新命名為 myboost,並將二進位函式庫的檔名變更為以 "myboost" 而非 "boost" 作為前綴。--namespace-alias 選項會使 namespace boost
成為新名稱的別名。
bcp --scan --boost=/boost foo.cpp bar.cpp boost
掃描 [非 Boost] 檔案 foo.cpp 和 bar.cpp 的 Boost 相依性,並將這些相依性複製到子目錄 boost。
bcp --report regex.hpp boost-regex-report.html
為 Boost 模組 regex.hpp 建立名為 boost-regex-report.html 的 HTML 報告。該報告包含授權資訊、作者詳細資訊和檔案相依性。
bcp --list [options] module-list
輸出 module-list 中所有檔案的清單,包括相依性。
bcp [options] module-list output-path
將 module-list 中找到的所有檔案複製到 output-path
bcp --report [options] module-list html-file
輸出包含以下內容的 HTML 報告檔案
當未使用 --scan 選項時,要複製的 Boost 檔案或函式庫名稱的清單,它可以是
當使用 --scan 選項時,則是要掃描 Boost 相依性的(可能是非 Boost)檔案清單,因此不會複製/列出模組列表中的檔案。
將檔案複製到的路徑(此路徑必須存在)。
檔案相依性按如下方式找到
應注意,實際上 bcp 可以產生相當「龐大」的相依性清單,原因包括
上面的最後一點可能會導致找到的標頭數量比大多數人預期的要多得多。例如,bcp 為 boost/shared_ptr.hpp 找到 274 個標頭相依性:透過在報告模式下執行 bcp,我們可以了解為何這些標頭都已被找到作為相依性
如您所見,找到的相依性數量遠大於任何單一編譯器使用的相依性數量,但是如果您想要發行 Boost 的子集,使其可以在任何設定、任何編譯器和任何平台上使用,那麼這正是您所需要的。如果您想知道您的特定編譯器正在使用哪些 Boost 標頭,那麼最好的方法是預處理程式碼並掃描輸出的 Boost 標頭包含。您應該知道,結果將非常特定於平台和編譯器,並且如果您僅變更編譯器開關(例如開啟執行緒支援),則可能不包含所需的所有標頭。
最後修訂時間:2013 年 4 月 18 日,格林威治時間 12:30:13 |