版权所有 © 2009 John Maddock
根据 Boost 软件许可证,版本 1.0 分发。(请参阅随附文件 LICENSE_1_0.txt 或复制于 https://boost.ac.cn/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 选项使 命名空间 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
输出模块列表中所有文件的列表,包括依赖项。
bcp [options] 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 GMT |