我有一个 MSVC++ 项目,包括一个可执行文件、几个自己的静态库和一些预编译的静态第三方库。exe 使用增量链接来加快构建时间。
当我在可执行项目中更改 .cpp 文件时,编译 + 链接非常快(<10 秒)。
但是,当我在自己的一个库中更改 .cpp 文件时,可执行项目似乎正在针对它使用的每个库进行完整链接。
如果它实际上是一个完整链接,我不再那么确定了,但是从“vc90.pdb not found”链接器警告中,我可以看出它链接到了一些根本没有改变的外部库。
以下是项目结构的示例:
- 预编译的第三方库
ExtLib1,ExtLib2以及ExtLib3 - 自有库
MyLib,使用第三方库ExtLib1 - 拥有 Exe
MyExe, 使用MyLib和ExtLib1-3
更改 .cpp 文件MyLib会导致MyExe链接到MyLib、和ExtLib1,即使打开了增量链接也是如此。ExtLib2ExtLib3
在我的项目中,完整链接大约需要 5 分钟,所以我问:有没有办法只重新链接已更改的库?