将编译和链接分开可以仅编译已更改的翻译单元。
这很好,因为它可以在大型项目上实现更快的构建,并减少关键项目的测试。
通常,编译阶段是最慢的。必须搜索文本并构建中间形式(对象文件)。
链接阶段更快,因为它在表格中查找符号并执行地址和符号解析。
通过不每次编译大型系统中的每个文件,可以节省时间。
此外,测试时间也会节省,因为一旦编译和测试了翻译单元,就可以将其保留下来。只有修改过的翻译单元需要重新测试。
一个例子是将数据文件编码为初始化数组。这些数据,例如字体位图,很少会更改。翻译单元只编译一次并保存为对象文件。这将我们的构建时间从5分钟缩短到1分钟。