Переход с VS 6 на VS 2010 - PullRequest
       1

Переход с VS 6 на VS 2010

1 голос
/ 28 октября 2010

Я наконец-то совершил переход от Visual Studio 6 (сборка 1998 года) к VS 2010. Это было болезненно, но после восьми часов работы моя 200KLOC программа Win32 фактически работает!

Я разочарованкак небрежный VS преобразует проекты.

[1] VS игнорирует предварительно скомпилированную цель, если это не "stdafx.cpp"

[2] В проекте с несколькими конфигурациями VS забывает окакие модули не включены в определенные конфигурации, и включает в себя все везде.Это означает, что каждый модуль, который должен быть исключен, должен быть повторно идентифицирован.

[3] Если некоторые модули не используют предварительно скомпилированные заголовки, VS теряет это различие и назначает всем предварительно скомпилированные заголовки.

[4] Свойства некоторых модулей таинственно неизменны.Модуль должен быть удален, а затем снова добавлен.

[5] Многие странные сообщения об ошибках, которые не имеют смысла и исчезают необъяснимым образом.

Кто-нибудь сталкивался с другими сюрпризами?

Многоядерная компиляция имеет большое значение?На моем Intel i5 3,2 ГГц 4 ГБ 64-разрядный ПК с 4 ядрами, компиляция 200K строк составляет 58 секунд.без многоядерности и 47 сек.с.

Тем не менее, я не должен жаловаться.Компиляция заняла 40 минут.на 33 МГц 486.

Ответы [ 2 ]

3 голосов
/ 28 октября 2010

Visual C ++ 6.0 больше не поддерживается, поэтому, если бы вы были на моем месте, это бы сработало.

Основная проблема, с которой я столкнулся при переходе с VC6 на VC7.1 / VC8 - поддержка STL в VC6 устарела по сравнению с текущим стандартом, что иногда приводит к некомпилируемому коду, например: auto_ptr s больше не разрешены внутри контейнеров STL; <locale> код часто отличается.

Не игнорируйте предупреждения (возможно, ваш пункт 5), когда вы собираете его в VS2010, и запускаете сборки VS2010 с /W4. Адресация предупреждений теперь может сэкономить вам часы отладки.

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

Хорошая новость заключается в том, что когда пыль осядет, вы будете так благодарны, что переехали. Это более производительная среда и язык в VS2010 / VC10.

0 голосов
/ 28 октября 2010

Многоядерная компиляция делает вещи немного быстрее, когда у вас есть несколько независимых проектов.Недостатком является то, что выходы разных компиляций смешиваются друг с другом (по крайней мере, в 2005 году, не уверен насчет 2010 года), и это делает отслеживание ошибок немного болезненным.Один проект не может быть скомпилирован и прерван, другие все еще продолжаются, и окончательные сообщения от того, что было прервано, не находятся рядом друг с другом - они распространяются на половину журнала.Вы должны использовать функцию текстового поиска в окне вывода.

Еще одна вещь, которая раздражала меня до бесконечности (опять же, в 2005 году), заключалась в том, что у них была ошибка в их макросе, и вы не моглине используйте запятые в записанных макросах.Насколько я знаю, это все еще не исправлено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...