c – g:使用ZIP文件作为输入
我们的Boost图书馆在我们身边.它由大量文件组成,永远不会改变,只有一小部分被使用.如果我们正在更改版本,我们将交换整个boost目录.目前,我们的SVN中有Boost源,按文件格式,使得结帐操作非常缓慢,特别是在
Windows上.
如果有一个符号/插件来解决ZIP文件中的C文件,这将是很好的,像: // @ZIPFS ASSIGN 'boost' 'boost.zip/boost' #include <boost/smart_ptr/shared_ptr.hpp> 是否有任何支持编译器钩在g?对ZIP支持有什么努力吗?其他想法? 解决方法
我假设在构建软件的过程中涉及到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存档中实际存在的文件替换)确保只有在必要时才能运行解压缩. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |