Обычно мне нравится компилироваться с уровня 4-го уровня в Visual Studio и рассматривать все предупреждения как ошибки. Проблема в том, что Ogre3D не компилируется с предупреждающим уровнем 3 (ни FBX SDK, ни OIS, который я также использую), и это создает проблему, потому что теперь у меня есть тонна предупреждений из библиотек Ogre3D, которые теперь рассматриваются как ошибки. Пока я собираюсь на уровне 3, но это меня очень беспокоит. Есть ли способ отключить предупреждения для определенных сторонних библиотек, над которыми я не контролирую?Изменение уровня предупреждения для сторонних лиц
ответ
Вы не говорите, как именно вы компиляции, но вот несколько вариантов:
1 - Внутри Visual Studio, вы можете установить уровень предупреждения для отдельных исходных файлов с помощью свойств для каждого исходного файла
2 - Вы можете также изменить уровень, предупреждение динамически в файле с помощью
#pragma warning(push, 3)
// Some code, perhaps #includes
#pragma warning(pop)
, который устанавливает уровень предупреждения 3 между двумя прагмами.
Возможно, что если вы отключите самые известные MSVC-глупости, проблема, по крайней мере, станет управляемой.
Мой заголовок подавления заглушек доступен по адресу: my blog; достаточно скомпилировать код с помощью <windows.h>
на уровне предупреждения с MSVC без предупреждений.
Кроме этого, вы можете использовать предельный уровень использования «брандмауэра компилятора», что означает полное прямое использование сторонней библиотеки в файле реализации или в наборе таких файлов. Затем вы можете скомпилировать эти файлы с низким уровнем предупреждения. Но я не думаю, что это того стоит. .
Приветствия & НТН,
Вы можете обернуть сторонние файлы .h в свой собственный файл и там отключить локально предупреждающие предупреждения, так как вы можете не отключать все предупреждения, а только конкретные.
// include_file_wrapper.h
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wuninitialized"
#include "file.h"
#pragma GCC diagnostic pop
Для НКУ вот как это можно сделать
http://gcc.gnu.org/onlinedocs/gcc/Pragmas.html
http://gcc.gnu.org/onlinedocs/gcc/Diagnostic-Pragmas.html#Diagnostic-Pragmas
- 1. Настройка устаревшего предупреждения для предупреждения уровня 4 вместо предупреждения уровня 2 в C#
- 2. Изменение цвета группы лиц
- 3. Предложение уровня предупреждения QT
- 4. Изменение сторонних проектов django
- 5. Изменение уровня уровня прогресса
- 6. Как игнорировать предупреждения от сторонних пакетов?
- 7. Как подавить предупреждения в сторонних исходных файлах?
- 8. Изменение уровня предупреждения с помощью Qt Creator и MinGW
- 9. Как избежать предупреждения уровня API?
- 10. Требуется проверка возрастных прав сторонних лиц в shopify
- 11. Изменение уровня громкости основного уровня
- 12. Есть ли способ сформировать безопасные соединения без доверенных сторонних лиц?
- 13. NS_Deprecated эквивалент для сторонних фреймворков
- 14. Изменение уровня API Promblems
- 15. Изменение уровня безопасности Java
- 16. Предупреждение предупреждения уровня API в коде
- 17. Изменение уровня обрезки ComponentCallbacks2
- 18. Изменение уровня масштабирования браузера
- 19. Изменение уровня паркетного журнала
- 20. Распознавание лиц, Распознавание лиц
- 21. Смешивание лиц двух лиц
- 22. Drupal: Изменение уровня доступа для нескольких узлов
- 23. Изменение уровня ведения журнала для некоторого регистратора
- 24. Изменение уровня журнала для встроенного фантома Cassandra
- 25. Изменение уровня масштабирования для высокоскоростных карт
- 26. изменение цвета для первого уровня contourf
- 27. Изменение ссылочного уровня для упорядоченной категориальной переменной
- 28. Изменение уровня запроса для проекта google
- 29. Индикатор уровня предупреждения о памяти - iPhone SDK
- 30. Идентификация действующих лиц для использования
Пункт № 1 именно то, что я искал, спасибо! – Samaursa