2011-03-15 31 views
7

我需要提交一个任务,但我只想包含boost实际使用的头文件(我使用了boost :: shared_ptr和boost :: function)。我尝试手动这样做,但我错过了一些头文件,每次我去添加它们,事实证明我错过了更多。有没有一个简单的方法来找出我真正需要的标题?获取必要的头文件提升

感谢

回答

13

bcp命令此制成:

NAME

bcp - extract subsets of Boost 

概要

bcp --list [options] module-list 
    bcp [options] module-list output-path 
    bcp --report [options] module-list html-file 
    bcp --help 

说明

Copies all the files, including dependencies, found in module-list to 
    output-path. output-path must be an existing path. 

但是你可能会惊讶地发现这些Boost头文件的相互依赖性如何。

+0

我需要建立bcp吗?我只能在我的boost目录 – Megatron 2011-03-15 02:31:24

+0

Dunno中找到它的源文件。我的Debian/Ubuntu机器使用'libboost1.42-dev'软件包。 – 2011-03-15 02:51:33

+1

最近必须在Windows上执行此操作 - 进入tools \ bcp文件夹并输入“.. \ .. \ bjam.exe --toolset = msvc” – dubnde 2011-03-15 10:47:02

1

有一个叫bcp来完成这一工具 - 复制出加速的需要和部分而已。

1

实际上你的问题还有另一种解决方案:预处理器。

您使用的编译器应该有一个开关,用于在gcc和clang上运行预处理器:-E。鉴于此,您可以预处理您包含的两个文件,并将此运行的结果存储到您自己的头文件(每个文件)中。

添加标题保护,包括已经预处理的标题代替常规的增强标题,你就完成了。

当然,两个头文件之间可能会有一些重复,差异工具可能会帮助您发现它,并将它分解到另一个常见头文件中......但是对于任务我一定不会打扰。

你也可以考虑告诉你的老师,因为他不要求你提供你编译的标准库头,他不应该要求你使用的boost头。