Visual C ++: связывание занимает много времени в режиме выпуска - PullRequest
1 голос
/ 24 октября 2009

По неизвестной причине шаг связывания в моем шаге приложения C ++ занимает всего несколько секунд в отладочных сборках, но более минуты в режиме выпуска. У кого-нибудь есть идеи, может ли это быть связано с настройками моего проекта или внешними библиотеками, с которыми связаны? Это общая проблема?

Ответы [ 3 ]

3 голосов
/ 24 октября 2009

Инкрементные ссылки активированы для отладочных сборок, а не для сборок выпуска. Это то, что наиболее вероятно. В настройках проекта вы можете взглянуть на Linker -> Командная строка.

  • /INCREMENTAL * .ilk файл генерируется для ускорения связывания
  • /INCREMENTAL:NO неактивно

Как изменить настройку: Linker -> General -> Enable Incremental Linking

2 голосов
/ 24 октября 2009

Скорее всего, это будет более агрессивный набор оптимизаций между объектами, применяемый к сборке выпуска.

1 голос
/ 24 октября 2009

Несколько вещей, чтобы попробовать:

  • Включите более подробные настройки компоновщика: это может пролить свет на происходящее
  • Попробуйте связать без оптимизации
  • Включена ли оптимизация всей программы?
  • Загрузите и запустите Process Monitor , чтобы увидеть, какие файлы он тратит на чтение. Там может быть какая-то странная аномалия, такая как сборка релиза с использованием медленного сетевого диска
...