我需要提交一个任务,但我只想包含boost实际使用的头文件(我使用了boost :: shared_ptr和boost :: function)。我尝试手动这样做,但我错过了一些头文件,每次我去添加它们,事实证明我错过了更多。有没有一个简单的方法来找出我真正需要的标题?获取必要的头文件提升
感谢
我需要提交一个任务,但我只想包含boost实际使用的头文件(我使用了boost :: shared_ptr和boost :: function)。我尝试手动这样做,但我错过了一些头文件,每次我去添加它们,事实证明我错过了更多。有没有一个简单的方法来找出我真正需要的标题?获取必要的头文件提升
感谢
的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头文件的相互依赖性如何。
有一个叫bcp
来完成这一工具 - 复制出加速的需要和部分而已。
实际上你的问题还有另一种解决方案:预处理器。
您使用的编译器应该有一个开关,用于在gcc和clang上运行预处理器:-E
。鉴于此,您可以预处理您包含的两个文件,并将此运行的结果存储到您自己的头文件(每个文件)中。
添加标题保护,包括已经预处理的标题代替常规的增强标题,你就完成了。
当然,两个头文件之间可能会有一些重复,差异工具可能会帮助您发现它,并将它分解到另一个常见头文件中......但是对于任务我一定不会打扰。
你也可以考虑告诉你的老师,因为他不要求你提供你编译的标准库头,他不应该要求你使用的boost头。
我需要建立bcp吗?我只能在我的boost目录 – Megatron 2011-03-15 02:31:24
Dunno中找到它的源文件。我的Debian/Ubuntu机器使用'libboost1.42-dev'软件包。 – 2011-03-15 02:51:33
最近必须在Windows上执行此操作 - 进入tools \ bcp文件夹并输入“.. \ .. \ bjam.exe --toolset = msvc” – dubnde 2011-03-15 10:47:02