我正在使用boost/program_options
编写一个小程序来处理来自命令行的选项。现在我想将我的代码分发给一般未安装Boost的系统。所以我使用了bcp
实用程序。我在来自program_options tutorial:
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的第三方东西!!
答案 0 :(得分:3)
Boost.Documentation对此主题的解释比我能提供的解释更多。最值得注意的是:
应该注意到在实践中 bcp可以产生一个相当“胖”的列表 依赖性,原因 包括:
[...]
- 当您包含标题时,
bcp
不知道您是哪个编译器 使用,所以它遵循一切可能 预处理器路径。如果你是 分发Boost的子集 你应用那么就是这样 你想发生一般情况。与大多数人的期望相比,上面的最后一点可以导致发现的标题数量大幅增加。 例如bcp通过在报告模式下运行bcp来查找boost / shared_ptr.hpp的274个头依赖项,我们可以看到为什么所有这些头都被发现为依赖项
我建议您尝试bcp --report
并检查包含每个文件的原因,看看是否真的有必要。