加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – g:使用ZIP文件作为输入

发布时间:2020-12-16 03:14:11 所属栏目:百科 来源:网络整理
导读:我们的Boost图书馆在我们身边.它由大量文件组成,永远不会改变,只有一小部分被使用.如果我们正在更改版本,我们将交换整个boost目录.目前,我们的SVN中有Boost源,按文件格式,使得结帐操作非常缓慢,特别是在 Windows上. 如果有一个符号/插件来解决ZIP文件中的C文
我们的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存档中实际存在的文件替换)确保只有在必要时才能运行解压缩.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读