gpt4 book ai didi

c++ - 为什么 bcp 会为 Boost program_options 计算这么大的依赖列表?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:05:47 25 4
gpt4 key购买 nike

我正在使用 boost/program_options 编写一个小程序来处理来自命令行的选项。现在我想将我的代码分发到通常未安装 Boost 的系统。所以我使用了 bcp 实用程序。我在来自 program_options tutorial 的名为 example/first.cpp 的 Boost 示例中尝试了它:

bcp --scan --boost=/users2/xxx/boost_1_45_0 ~/prova/first.cpp dest

它创建一个目录dest,其中包含大量.hpp.cpp 文件。我想这就是我所需要的,仅此而已。是对的吗?因为:

du -hs dest
37M dest

37M是不是太多了?例如,我可以使用 Python 和 test_optparse.py 来做同样的事情,只有 61KB。

我做错了什么吗?关键是我的源程序只有4MB;我无法添加 37MB 的第三方内容!!

最佳答案

Boost.Documentation关于这个主题的解释比我能提供的还要多。最值得注意的是:

It should be noted that in practice bcp can produce a rather "fat" list of dependencies, reasons for this include:

[...]

  • When you include a header, bcp doesn't know what compiler you're using, so it follows all possible preprocessor paths. If you're distributing a subset of Boost with you're application then that is what you want to have happen in general.

The last point above can result in a substantial increase in the number of headers found compared to most peoples expectations. For example bcp finds 274 header dependencies for boost/shared_ptr.hpp: by running bcp in report mode we can see why all these headers have been found as dependencies

我建议您尝试 bcp --report 并检查包含每个文件的原因,看看是否真的有必要。

关于c++ - 为什么 bcp 会为 Boost program_options 计算这么大的依赖列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4539347/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com