Огромные файлы OBJ в компиляции VS2008 C++ по сравнению с VS6

У нас есть большой проект,> 1M строк кода примерно в 300 DLL. До сих пор мы использовали VS6.

Теперь я преобразовал все в VS2008, все компиляции, ссылки и, что более важно -запуски!

==> Однако... результирующие скомпилированные файлы OBJ в X 10 больше, а компоновка выполняется очень медленно, при этом компоновщик довольно часто использует > 1 ГБ памяти.

Часть последствий заключается в том, что мне нужно скомпилировать определенные проекты с помощью /bigobj.

В результате сборка увеличилась с 1 :45 на настольном компьютере до 3 часов. DLL и LIB примерно такого же размера, как и в старой сборке VS6.

Я прочитал все, что мог найти здесь, но не нашел решения этой проблемы. Если это дополнительная информация DEBUG -, она мне не нужна. Раньше мне хватало. Размер в выпуске увеличился, но не настолько...

У кого-нибудь есть идеи? Или мой единственный вариант разбить проекты на гораздо более мелкие блоки? Является ли рефакторинг моей единственной надеждой?! Наверняка есть секретный флаг, который я пропустил...


Редактировать1 (07.13.2012 12 :20BST) Я сравнил дампбин Obj, созданный VS6, и VS2008. Тот, что в 2008 году , появляется , как будто "статически связывается". В VS6 он содержит несколько символов из текущей библиотеки DLL. В VS2008 он содержит символы из (возможно )всех библиотек, от которых он зависит. Размеры дампа составляют 66 КБ и 32 000 КБ для VS6 и VS2008 соответственно.
10
задан Bart 13 July 2012 в 12:08
поделиться