Visual Studio из командной строки генерирует предупреждения; IDE не - PullRequest
2 голосов
/ 06 января 2012

Я использую Visual Studio 2005 (32-разрядная версия) в системе Windows XP. У меня есть проект C ++, который я собираю из командной строки (в командном файле), который использует devenv.exe для запуска сборки. Вот пример того, как он запускается:

{path_to_devenv.exe} my_solution.sln /rebuild "Debug|Win32" /out my_logfile.txt

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

#pragma warning ( disable : 4521 4522 )
// Some code here
#pragma warning ( default : 4521 4522 )

Когда проект встроен в конфигурацию debug из среды IDE, эти предупреждения не отображаются в выходных данных сборки. Когда тот же проект создается из командной строки, предупреждения do отображаются в нашем файле журнала (который мы указали с помощью параметра командной строки / out ). При создании релиза предупреждения не отображаются ни в одном случае.

Есть ли что-то другое в управлении VS 2005 через devenv.exe, из-за которого прагма игнорируется в случае отладки? Почему эти предупреждения должны появляться в одном мире, а не в другом?

1 Ответ

1 голос
/ 06 января 2012

Честно говоря, единственная причина, по которой я вижу это, - это когда прагм не видно.

Проверьте

  • конфигурацию сборки (вы тоже строите Debug|Win32 из среды IDE?)
  • и особенно пути включения (они одинаковые;возможно, посмотрите, содержит ли окружение другие параметры)
  • вы делаете полное восстановление из среды IDE ?Я не исключаю, что вы обычно не видите предупреждений в IDE, потому что вы обычно выполняете инкрементную сборку и связанные источники не нуждаются в сборке.Проверьте, получаете ли вы те же ошибки при полной перестройке в IDE

Если вы отчаянно нуждаетесь в подсказках, вы всегда можете сохранить результат предварительной обработки, используя оба варианта, и сравнитьих.Параметр «Сохранить предварительно обработанный источник» скрыт где-то под настройками сборки «Препроцессор» C ++.

Удачи

...