Я переглянув MSDN Microsoft і всюди в Інтернеті, але все ще не зміг зрозуміти, що це таке.
Чи означає це, що завершена програма завантажує DLL в різний час під час її виконання, як призначається всім відразу після запуску?
Я цілком далеко? :)
Я переглянув MSDN Microsoft і всюди в Інтернеті, але все ще не зміг зрозуміти, що це таке.
Чи означає це, що завершена програма завантажує DLL в різний час під час її виконання, як призначається всім відразу після запуску?
Я цілком далеко? :)
Відповіді:
Зв'язування включає в себе упаковку всіх .obj-файлів, створених з вихідних файлів, а також усіх .lib-файлів, на які ви посилаєтесь, у свій вихід (наприклад, .exe або .dll).
Без поступових зв'язків, це потрібно робити щоразу з нуля.
Поступове посилання посилає ваш exe / dll таким чином, що полегшує оновлення оновити існуючий exe / dll, коли ви внесете невеликі зміни та повторно компілюєте.
Отже, додаткове зв’язування просто пришвидшує складання та зв’язок вашого проекту.
Єдиний ефект виконання, який він може мати, це те, що він може зробити ваш exe / dll трохи більшим і повільнішим, як описано тут:
http://msdn.microsoft.com/en-us/library/4khtbfyf.aspx
Редагувати: Як згадував Логан, додаткове посилання також не сумісне з генерацією коду часу посилання - тому втрачається можлива оптимізація продуктивності.
Можливо, ви хочете використовувати інкрементальне посилання для налагодження версій для прискорення розвитку, але відключити його для версій версій для підвищення продуктивності виконання.
Затримка завантажених DLL файлів може бути те, про що ви думаєте:
incremental linking
змусить лінкер зв'язати все з нуля кожного разу?