Я могу запретить появление многих предупреждений в Visual Studio 2005 SP1 на странице свойств C / C ++ Advanced, что заставляет среду IDE использовать переключатель / wd в командной строке, который вызывает компилятор. Однако, когда я пытаюсь заблокировать предупреждение 4200 (используется нестандартное расширение: массив нулевого размера в структуре / объединении), оно все равно появляется при компиляции. (Конечно, это оправдано; я просто не в состоянии исправить код, да и не стоит беспокоиться, потому что он сгенерирован, а предупреждение в данных обстоятельствах совершенно безобидное.) Кто-нибудь случайно узнать, ошибка ли это в компиляторе? Или я могу что-нибудь с этим поделать?
Как я могу запретить предупреждение 4200 в Visual Studio 2005?
Ответы (2)
Вы имеете в виду, как с pragma?
#pragma warning( disable : 2400 )
Чтобы полностью отключить предупреждение в файле, вы можете добавить следующее в начало файла
#pragma warning(disable:2400)
Если вам нужна дополнительная гибкость, отличная от полного отключения для файла, на следующей странице перечислены несколько других более тонких параметров.
На основании вашей информации неясно, является ли это ошибкой в компиляторе или проблемой конфигурации. Я бы склонился к проблеме конфигурации, в частности к конфликтующим параметрам компилятора, из-за которого сложно подавить предупреждение.
ИЗМЕНИТЬ
OP упомянул, что они не могут контролировать сгенерированный код, поэтому они не могут напрямую включать прагму. В таком случае попробуйте этот трюк. Скажем, имя файла - Generated.cpp. Больше не включайте Generated.cpp как один из файлов для компиляции. Вместо этого создайте новый файл с именем Example.cpp со следующим содержимым
#pragma warning(disable:2400)
#include "Generated.cpp"
Теперь вы получите текст Generated.cpp с отключенным предупреждением, скомпилировав только Example.cpp.