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

时间:2010-12-27 14:30:21

标签: c++ boost bcp boost-program-options

我正在使用boost/program_options编写一个小程序来处理来自命令行的选项。现在我想将我的代码分发给一般未安装Boost的系统。所以我使用了bcp实用程序。我在来自program_options tutorial

的来自Boost的名为example/first.cpp的示例中尝试了它
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的第三方东西!!

1 个答案:

答案 0 :(得分:3)

Boost.Documentation对此主题的解释比我能提供的解释更多。最值得注意的是:

  

应该注意到在实践中   bcp可以产生一个相当“胖”的列表   依赖性,原因   包括:

     

[...]

     
      
  • 当您包含标题时,bcp不知道您是哪个编译器   使用,所以它遵循一切可能   预处理器路径。如果你是   分发Boost的子集   你应用那么就是这样   你想发生一般情况。
  •   
     

与大多数人的期望相比,上面的最后一点可以导致发现的标题数量大幅增加。 例如bcp通过在报告模式下运行bcp来查找boost / shared_ptr.hpp的274个头依赖项,我们可以看到为什么所有这些头都被发现为依赖项

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

相关问题