在我的工作场所,我们的产品编译成可执行文件,子项目链接为静态库(.lib)或共享库(.dll)。我们使用Microsoft C ++编译器。
最近,我的一位同事将子项目目标从.lib(静态库)转换为.o(目标文件),并且该子项目的链接时间大幅减少。早些时候,.lib需要大约1.5分钟才能完成链接。通过链接到.o,链接时间几乎是5-6秒。
为什么链接.lib比.o?
慢答案 0 :(得分:-1)
如果您所做的只是编译源代码以创建目标文件,那么您根本不执行任何链接。这意味着对源代码中存在的外部函数和变量的任何引用都将无效,因为它们的地址尚未解析。