Я просмотрел Microsoft MSDN и все в Интернете, но до сих пор не смог понять, что это такое.
Означает ли это, что завершенная программа загружает библиотеки DLL в разное время во время выполнения, а не все сразу при запуске?
Я совсем далеко? :)
Я просмотрел Microsoft MSDN и все в Интернете, но до сих пор не смог понять, что это такое.
Означает ли это, что завершенная программа загружает библиотеки DLL в разное время во время выполнения, а не все сразу при запуске?
Я совсем далеко? :)
Ответы:
Связывание включает объединение всех файлов .obj, созданных из ваших исходных файлов, а также любых файлов .lib, на которые вы ссылаетесь, в ваш вывод (например, .exe или .dll).
Без инкрементального связывания это нужно делать каждый раз с нуля.
Добавочное связывание связывает ваш exe / dll таким образом, чтобы компоновщику было проще обновить существующий exe / dll, когда вы вносите небольшие изменения и повторно компилируете.
Таким образом, добавочная компоновка просто ускоряет компиляцию и компоновку вашего проекта.
Единственный эффект времени выполнения, который он может иметь, заключается в том, что он может сделать ваш exe / dll немного больше и медленнее, как описано здесь:
http://msdn.microsoft.com/en-us/library/4khtbfyf.aspx
Изменить: как упоминал Логан, инкрементное связывание также несовместимо с генерацией кода времени связывания - поэтому теряется возможная оптимизация производительности.
Вы можете использовать инкрементное связывание для отладочных сборок, чтобы ускорить разработку, но отключите его для сборок выпуска, чтобы повысить производительность во время выполнения.
Возможно, вы думаете о задержанных загружаемых DLL:
incremental linking
заставит компоновщик каждый раз связывать все с нуля?