Я хотел бы, чтобы cl.exe сообщал о предупреждении в случае, если неопределенный макрос встречается в выражении препроцессора, компилирующем источник c/C++. Как g ++ -Wundef. Это доступно? Прохождение списка всех предупреждений компилятора на http://msdn.microsoft.com/en-us/library/cfahxw6k.aspx не является вариантом.Что такое MSVC, эквивалентный gcc -Wundef?
ответ
Вариант компилятора MSVC /wd4668
(для отключения предупреждения «C4668») должен быть эквивалентен -Wundef
, в соответствии с документацией по адресу http://msdn.microsoft.com/en-us/library/4dt9kyhy.aspx. [На основании комментария к исходному вопросу.]
К сожалению, это предупреждение непригодно, поскольку оно вызывает много предупреждений в файлах системных заголовков. В отличие от GCC/Clang, MSVC, похоже, не имеет возможности игнорировать предупреждения в файлах системных заголовков.
Предупреждение не совпадает с параметром компилятора. Чтобы ответить на этот вопрос, вы должны указать параметр командной строки, который позволяет это конкретное предупреждение. (Номер предупреждения был подходящим в качестве комментария, это не полный ответ) –
Исправлено упоминанием '/ wd4668', хотя я его не тестировал. –
Найдено - C4668. –