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