У меня есть проект MSVC++, состоящий из исполняемого файла, нескольких собственных статических библиотек и некоторых предварительно скомпилированных статических сторонних библиотек. exe использует инкрементную компоновку, чтобы ускорить время сборки.
Когда я изменяю файл.cpp в исполняемом проекте, компиляция + связывание выполняется очень быстро (<10s ).
Однако, когда я изменяю файл.cpp в одной из моих собственных библиотек, исполняемый проект выполняет полную ссылку на каждую используемую им библиотеку.
Я больше не уверен, является ли это полной ссылкой на самом деле, но из предупреждений компоновщика «vc90.pdb not found» я могу сказать, что это ссылки на некоторые внешние библиотеки, которые вообще не изменились.
Вот пример структуры проекта:
ExtLib1
, ExtLib2
иExtLib3
MyLib
, использование сторонней библиотекиExtLib1
MyExe
, используя MyLib
иExtLib1-3
Изменение файла.cpp в MyLib
приведет к тому, что MyExe
будет связан с MyLib
, ExtLib1
, ExtLib2
и ExtLib3
, даже если Инкрементальное связывание включено.
В моем проекте полная ссылка занимает около 5 минут, поэтому я спрашиваю:Есть ли способ повторно -связать только измененную библиотеку?