【问题标题】:Cache header files for make/g++缓存 make/g++ 的头文件
【发布时间】:2014-01-31 17:35:31
【问题描述】:

我正在开发一个大型 C++ 代码库,我想加快它的编译时间。我知道的一件事是,我所有的库都在一个网络驱动器上,这大大减慢了速度。如果我可以让 make 或其他东西自动缓存它们,无论是在 /tmp 中还是到 ramdisk 中,我希望这会大大改善我的编译时间。有没有办法做到这一点?当然,我可以手动复制它们并设置同步作业,但是每个开发人员都必须在他们编译的每个盒子上都这样做,所以我正在寻找一个自动化的解决方案。

谢谢!

【问题讨论】:

  • 手动复制它们可能还不错。事实上,如果您能够设置某种版本控制系统(如 SVN),这可能是正确的做法。然后您可以结帐一次并根据需要更新/提交。这样您还可以很好地管理不同版本的文件。
  • 检查这个。 [超级用户的类似问题][1] [1]:superuser.com/questions/446695/…

标签: c++ linux caching makefile g++


【解决方案1】:

当然。有很多很多的方法。您可以只创建一个复制内容的规则,然后让人们运行make copylocal 或其他任何东西。这很快,但人们必须记住这样做,如果库发生很大变化,这可能会很烦人。您可以制定一个复制事物的规则,然后将其作为其他目标的先决条件,以便首先在每次构建时完成。这将花费更长的时间:复制步骤加上使用本地副本会比仅使用远程副本花费更长的总时间吗?谁知道?

您还可以使用 ccache 之类的工具在本地缓存编译的结果,而不是复制库头。这将为典型的小型增量构建节省更多成本,并且可以轻松集成到构建系统中,但会稍微减慢缓存对象的“重建世界”步骤。

等等。您的问题过于开放,难以回答。

【讨论】:

    【解决方案2】:

    避免对代码使用网络文件系统。使用version control system,例如git

    您也可以考虑使用ccache

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-07
      • 2018-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-30
      相关资源
      最近更新 更多