处理大量的Boost头文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了处理大量的Boost头文件相关的知识,希望对你有一定的参考价值。
有没有办法大幅减少Boost所需的头文件数量?
理想情况下,我要求Boost人们找到一种方法来缩小他们的产品。但与此同时,有没有办法包含Boost,但没有几千个头文件可以处理?
是否有一种C ++机制将数千个头文件“捆绑”到一个“包”中,并将该单个文件检入源代码控制中?
我想这里的问题是源代码控制做差异,svn status
和svn checkout
是如此之慢,所有这些文件都要处理。
Boost提供了一个名为BCP的工具。 BCP允许您提取Boost的子集。
它还可以分析源树并仅提取源树正在使用的Boost组件。
我建议将您的第三方库放在一个单独的存储库中。 Boost模板很重,因此有一个很好的理由让他们不要捆绑他们的标题。尝试包含捆绑的Boost标头会将您的“浪费”时间从版本控制转移到构建时间。这并没有真正扩展。如果你试图对我的Boost标题这样做,我会拒绝使用Boost。
ccache可以为加速预处理器重编译而节省生命。
没有办法将所有文件打包在一个文件中(除了对存档进行版本控制,但它并不是很好的做法,也不是实用的)。另外,据称Subversion在检查数千个小文件(例如Boost头文件)时速度很慢,因此您可以考虑切换到更高性能的SCM,如Git。
您将对BCP感兴趣,这是一个Boost工具,可以分析您的源并将您使用的Boost标头复制到一个单独的目录中。这有助于减少第三方文件,并且在我的情况下大多是正确的(我只需要在列表中添加一些文件)。
不是你问的,但这是解决问题的方法。据我了解,您正在将Boost文件添加到代码控制存储库中。为什么?它们本身不属于您的项目;他们不在你的控制之下。
这是我如何构建我的项目,以便我不会遇到这种问题。除了include和lib文件夹之外,所有内容都添加到源代码控制中,如下所述。 (我只显示目录树的相关部分。)
- / src - 包含我自己的源文件和标头 ext - 外部依赖(例如boost) 提高-1-46-1 Download.txt - 包含可从中下载正确版本的链接 include - 这不会添加到源代码管理中 lib - 这两个都没有
以上是关于处理大量的Boost头文件的主要内容,如果未能解决你的问题,请参考以下文章
为啥我的由 boost.python 和 c++ 头文件编译的 .so 文件失败了?
在 MFC dll 中包含 boost mutex 头文件时断言
PCL异常处理:pcl 1.8.13rdpartyoostincludeoost-1_64oost ypeofmsvc ypeof_impl.hpp(125): error(代码片段