为什么.o(目标文件)链接速度比.lib(静态库)快?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么.o(目标文件)链接速度比.lib(静态库)快?相关的知识,希望对你有一定的参考价值。
在我的工作场所,我们的产品编译成可执行文件,子项目链接为静态库(.lib)或共享库(.dll)。我们使用Microsoft C ++编译器。
最近我的一个同事将子项目目标从.lib(静态库)转换为.o(目标文件),并且该子项目的链接时间大幅减少。早些时候,.lib需要大约1.5分钟才能完成链接。通过链接到.o,链接时间几乎是5-6秒。
为什么链接.lib比.o更慢?
答案
如果你所做的只是编译源代码来创建一个目标文件,那么你根本就不进行任何链接。这意味着对源代码中存在的外部函数和变量的任何引用都将无效,因为它们的地址尚未解析。
https://www.cprogramming.com/compilingandlinking.html
以上是关于为什么.o(目标文件)链接速度比.lib(静态库)快?的主要内容,如果未能解决你的问题,请参考以下文章