在已经使用Git时减少编译时间 我是一个C++嵌入式程序员,我们已经开始了C++的一个大项目,包括FreeRTOS,触摸显示功能等等。问题是编译时间很长(几乎1分钟),即使我们处于项目的初始阶段。我们希望缩短这一时间

在已经使用Git时减少编译时间 我是一个C++嵌入式程序员,我们已经开始了C++的一个大项目,包括FreeRTOS,触摸显示功能等等。问题是编译时间很长(几乎1分钟),即使我们处于项目的初始阶段。我们希望缩短这一时间,c++,c,git,compilation,C++,C,Git,Compilation,从我的搜索中,我发现构建服务器可以安装continueintegration工具,以减少时间。我看到Apache的SVN在我的google搜索中非常流行,但问题是我们使用的是Git。所以我发现了Jenkins,但它有很多功能(管道、测试等),即使它们真的很酷,我现在也不需要它们。目前,我只希望减少编译时间 有没有更简单的工具来实现这一点?请记住,我不是一个电脑软件或服务器的家伙,所以有些事情对我来说更难理解,搜索和学习,(谢天谢地,我有一个IT来支持我),但我有很好的意愿挖掘,如果有人与以前的经

从我的搜索中,我发现构建服务器可以安装continueintegration工具,以减少时间。我看到Apache的SVN在我的google搜索中非常流行,但问题是我们使用的是Git。所以我发现了Jenkins,但它有很多功能(管道、测试等),即使它们真的很酷,我现在也不需要它们。目前,我只希望减少编译时间

有没有更简单的工具来实现这一点?请记住,我不是一个电脑软件或服务器的家伙,所以有些事情对我来说更难理解,搜索和学习,(谢天谢地,我有一个IT来支持我),但我有很好的意愿挖掘,如果有人与以前的经验将指给我一个正确的方向


提前感谢。

大多数大型项目每晚都会运行一次完整的构建和单元测试,以识别由新更改造成的问题。詹金斯是一个很好的工具

为了减少在本地工作区中构建的时间,您需要一个良好的工具,该工具只重建已更改或包含已更改头文件的文件

  • 您不需要构建服务器。开发人员在他们的办公桌上工作,编译、闪动和调试——例如,实验等等。这个想法完全是胡说八道

  • 与其他类似系统相比,IAR IDE速度非常慢。如果项目中有多个文件,请检查依赖项(如果只更改了一个文件,则可能需要较长时间)。IAR到gcc/make(根据我的经验)的构建时间大约为10:1,单个文件更改(项目中有数千个文件)为30:1。在我看来,你应该重新考虑选择的工具链


  • 这些工具都不能缩短编译时间。当您启动
    make
    add-
    jnn
    时,其中
    nn
    是您的处理器(PC机)可以运行的线程数。它几乎可以将时间减少
    nn
    编译时间长的主要原因之一是缺乏模块化。并非每个编译单元都需要包含每个头文件。Monolith头是最糟糕的。这是IDE和链接器设置的问题,而不是版本控制系统的问题。也就是说,除非所有代码都在某个远程服务器上运行。@alexxx我在IAR上完成的上一个项目大约需要30分钟来编译(重建)。一次文件更改—大约5分钟—检查依赖项。Junkit是一个评论,而不是answer@stark我没有说我使用gcc。我使用IAR编译器。
    make
    不依赖于gcc。构建服务器是一个公认的原则,在一些不可复制的环境(比如开发人员的个人机器)中发布构建的想法并不是您在2020年所希望的。这并不意味着每个生成都需要一个生成服务器,只是意味着不需要本地生成。@MSalters如果使用生成服务器,这意味着整个IDE将在该服务器上运行,或者只有生成文件夹及其文件在其中?@MSalters您不能在生成服务器上安装IDE。您需要通过许可证密钥问题(每个开发人员一个密钥是合法的)。您的构建将非常慢(我打赌慢5倍)。我甚至不知道有哪家公司使用这种软件是这样工作的。