0

嗨,我想知道什么时候需要完整构建,什么时候部分构建就足够了。有很多文章,但我无法找到具体的答案。

以下是我的想法

在以下情况下需要完整构建:

1.改变依赖模块的构建。

---改变构建选项或使用优化技术。

2.对象布局的变化:

---头文件中的任何更改,添加和删除类中的新方法。

---通过添加或删除变量或虚拟函数来改变对象大小。

--- 使用 pragma pack 更改数据对齐方式。

3.全局变量的任何变化

在以下情况下,部分构建就足够了:

1.任何逻辑上的改变,只要不改变指定的接口

2.堆栈变量的变化

4

1 回答 1

1

在理想情况下,永远不需要完整的构建,因为所有构建工具都会自动检测它们的依赖项是否发生了变化。

但这仅在理想世界中是正确的。实际上构建工具是由人和人编写的

  • 制造失败,因此工具可能不会考虑所有可能的变化,
  • 是懒惰的,所以这些工具可能不会考虑任何变化。

对您而言,这意味着您必须对构建工具有一定的经验。编写好的 makefile 可能会考虑到所有内容,并且您很少需要进行完整的构建。但是在 21 世纪,makefile 不再是最先进的,而且它们很快就会变得复杂。今天的开发环境在查找依赖项方面做得相当好,但是对于较大的项目,您可能会遇到难以放入开发环境概念中的依赖项,并且您将编写脚本。

所以你的问题没有真正的答案。在实践中,最好为每个版本进行一次完全重建,然后只需按一个按钮即可完成重建。并为日常工作进行部分构建,因为没有人愿意等待 2 个小时来查看代码是否可编译。但即使在日常工作中,有时也需要完全重建,因为链接器/编译器/(您在此处选择的工具)甚至没有识别出最简单的更改。

于 2011-12-14T18:38:21.830 回答