我们的Boost图书馆在我们身边.它由大量文件组成,永远不会改变,只有一小部分被使用.如果我们正在更改版本,我们将交换整个boost目录.目前,我们的SVN中有Boost源,按文件格式,使得结帐操作非常缓慢,特别是在
Windows上.
如果有一个符号/插件来解决ZIP文件中的C文件,这将是很好的,像:
// @ZIPFS ASSIGN 'boost' 'boost.zip/boost' #include <boost/smart_ptr/shared_ptr.hpp>
解决方法
我假设在构建软件的过程中涉及到make或类似的构建系统.我将zip文件放在存储库中,并将一个规则添加到Makefile中以在实际构建开始之前解压缩.
例如,假设你的zip文件在源代码树中是“external / boost.zip”,它将被提取到“external / boost”,并且它的大小包含一个文件“boost_version.h”.
# external/Makefile unpack_boost: boost/boost_version.h boost/boost_version.h: boost.zip unzip $<
我不知道解压缩调用的确切语法,请询问您的手册页.
然后在其他Makefile中,您可以让源文件依赖于unpack_boost目标,以便在编译源文件之前进行解压缩Boost.
# src/Makefile (excerpt) unpack_boost: make -C ../external unpack_boost source_file.cpp: unpack_boost
如果您使用的是Makefile生成器(或完全不同的构建系统),请查看这些程序的文档,了解如何创建自定义目标unpack_boost.例如,在CMake中,可以使用add_custom_command指令.
精细的打印:Makefile工作不是必须的boost / boost_version.h文件.您可以将unzip命令放入unpack_boost目标中,但是目标将有效地成为假的,即:它将在每次构建期间执行.其中的文件(当然,您需要由zip存档中实际存在的文件替换)确保只有在必要时才能运行解压缩.