Что такое “пошаговая компоновка”?

Я посмотрел на MSDN Microsoft и все вокруг сети, но я все еще не смог получить действительно хорошую идею того, каково это.

Это означает завершенные загрузки программы DLLs в разное время во время его выполнения, как соединено к внезапно на запуск?

Я - полностью путь прочь?:)

101
задан Russel 28 July 2010 в 02:40
поделиться

1 ответ

Связывание включает в себя упаковку всех файлов .obj, созданных из ваших исходных файлов, а также любых файлов .lib, на которые вы ссылаетесь, в ваш вывод (например, .exe или .dll).

Без инкрементального связывания это нужно делать каждый раз с нуля.

Инкрементное связывание связывает ваш exe / dll таким образом, чтобы компоновщику было проще обновить существующий exe / dll, когда вы вносите небольшие изменения и повторно компилируете.

Таким образом, инкрементное связывание просто ускоряет компиляцию и компоновку вашего проекта.

Единственный эффект времени выполнения, который он может иметь, заключается в том, что он может сделать ваш exe / dll немного больше и медленнее, как описано здесь:

http://msdn.microsoft.com/en-us/library/4khtbfyf.aspx

Редактировать: Как упоминал Логан, инкрементное связывание также несовместимо с генерацией временного кода соединения - поэтому теряется возможная оптимизация производительности.

Вы можете использовать инкрементное связывание для отладочных сборок, чтобы ускорить разработку, но отключите его для выпускных сборок, чтобы повысить производительность во время выполнения.

Возможно, вы думаете о библиотеках DLL, загружаемых с задержкой:

http://msdn.microsoft.com/en-us/library/151kt790.aspx

116
ответ дан 24 November 2019 в 04:44
поделиться