为什么.o(目标文件)链接速度比.lib(静态库)快?

问题描述 投票:2回答:1

在我的工作场所,我们的产品编译成可执行文件,子项目链接为静态库(.lib)或共享库(.dll)。我们使用Microsoft C ++编译器。

最近我的一个同事将子项目目标从.lib(静态库)转换为.o(目标文件),并且该子项目的链接时间大幅减少。早些时候,.lib需要大约1.5分钟才能完成链接。通过链接到.o,链接时间几乎是5-6秒。

为什么链接.lib比.o更慢?

c++ windows visual-studio-2010
1个回答
-1
投票

如果你所做的只是编译源代码来创建一个目标文件,那么你根本就不进行任何链接。这意味着对源代码中存在的外部函数和变量的任何引用都将无效,因为它们的地址尚未解析。

https://www.cprogramming.com/compilingandlinking.html

© www.soinside.com 2019 - 2024. All rights reserved.