重建时消失的 运行 时间错误是否表示构建系统中存在错误?
Are run-time errors that disappear on rebuild indicative of bugs in the build system?
我们都听说过 - "try a clean build and see if it works"。通常奇怪的 运行-time 错误会在重建后消失。这让我想到——正确跟踪依赖关系是构建系统的工作。
这样的 运行时间错误 根据定义 构建系统中的错误 - 无论是 make,还是 msbuild,或者任何一个。或者换句话说,如果一个干净的构建和一个正常的构建产生不同的结果,根据定义,这是否是构建系统中的错误?
编辑: 我假设 the build environment is sane - 这意味着当文件更新时,它们的 "last modified" 时间戳变得更新(而不是旧的时间戳或相同的)。事实上,我所知道的所有版本控制系统都遵循该规则,否则它们会破坏像 Make 这样依赖时间戳来跟踪哪些文件需要更新的构建系统。
构建系统可以针对性能或完整性进行优化。
重建全部为完整性构建。
部分重建失败的原因是
- 知识不正确。构建了一个库,但是碎片化的构建系统不理解整体的依赖关系。
- 缺少依赖项。虽然理解了header对c代码的直接依赖,但是忽略了间接依赖。
- 编辑并继续错误编译。部分构建 mid 了解代码更改的后果,并且没有足够的重新编译。
所有这些错误都被优势所弥补
- make 文件更易于维护
- 编译速度更快
- 更快地解决错误
你需要自己判断价值所在
我们都听说过 - "try a clean build and see if it works"。通常奇怪的 运行-time 错误会在重建后消失。这让我想到——正确跟踪依赖关系是构建系统的工作。
这样的 运行时间错误 根据定义 构建系统中的错误 - 无论是 make,还是 msbuild,或者任何一个。或者换句话说,如果一个干净的构建和一个正常的构建产生不同的结果,根据定义,这是否是构建系统中的错误?
编辑: 我假设 the build environment is sane - 这意味着当文件更新时,它们的 "last modified" 时间戳变得更新(而不是旧的时间戳或相同的)。事实上,我所知道的所有版本控制系统都遵循该规则,否则它们会破坏像 Make 这样依赖时间戳来跟踪哪些文件需要更新的构建系统。
构建系统可以针对性能或完整性进行优化。
重建全部为完整性构建。
部分重建失败的原因是
- 知识不正确。构建了一个库,但是碎片化的构建系统不理解整体的依赖关系。
- 缺少依赖项。虽然理解了header对c代码的直接依赖,但是忽略了间接依赖。
- 编辑并继续错误编译。部分构建 mid 了解代码更改的后果,并且没有足够的重新编译。
所有这些错误都被优势所弥补
- make 文件更易于维护
- 编译速度更快
- 更快地解决错误
你需要自己判断价值所在