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