Generalmente me gusta compilar contra el nivel de advertencia 4 en Visual Studio y tratar todas las advertencias como errores. El problema es que Ogre3D no está compilado con advertencia de nivel 3 (ni FBX SDK ni OIS, que también estoy usando), y eso plantea un problema porque ahora tengo un montón de advertencias de las librerías Ogre3D que ahora se tratan como errores. Hasta ahora he estado compilando en el nivel 3, pero eso me pone muy incómodo. ¿Hay alguna manera de desactivar las advertencias para bibliotecas de terceros específicas sobre las cuales no tengo control?Cambio del nivel de advertencia para Libs de terceros
Respuesta
Usted no dice exactamente cómo se compila, pero aquí hay algunas opciones:
1 - dentro de Visual Studio, se puede establecer el nivel de advertencia para los archivos fuente individuales a través de las propiedades de cada archivo de origen
2 - también puede cambiar el nivel de la alerta de forma dinámica dentro de un archivo usando
#pragma warning(push, 3)
// Some code, perhaps #includes
#pragma warning(pop)
que establece el nivel de advertencia en 3 entre los dos pragmas.
Puede ser que si deshabilita las advertencias más conocidas de MSVC, el problema al menos se vuelva manejable.
Mi encabezado de supresión de tontos está disponible en my blog; es suficiente para compilar el código usando <windows.h>
en el nivel de advertencia 4 con MSVC, sin advertencias.
Aparte de eso, puede tomar la medida extrema de emplear un "firewall de compilación", lo que significa poner todo el uso directo de la biblioteca de terceros dentro de un archivo de implementación o un conjunto de dichos archivos. Luego puede compilar esos archivos con un nivel de advertencia bajo. Pero no creo que valga la pena. .
Saludos & HTH,
Puede envolver los archivos .h de terceros en su propio archivo y deshabilitar localmente las advertencias ofensivas, ya que es posible que no desee desactivar todas las advertencias, pero solo las específicas.
// include_file_wrapper.h
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wuninitialized"
#include "file.h"
#pragma GCC diagnostic pop
para GCC aquí es cómo se puede hacer esto
http://gcc.gnu.org/onlinedocs/gcc/Pragmas.html
http://gcc.gnu.org/onlinedocs/gcc/Diagnostic-Pragmas.html#Diagnostic-Pragmas
- 1. Vinculación de libs de terceros (libs.a) con NDK
- 2. Cambio del nivel de volumen maestro
- 3. InstallShield nivel de batería advertencia
- 4. Permisos de nivel de objeto Django 1.2: ¿soluciones de terceros?
- 5. Eclipse Android Nivel de API de cambio
- 6. Log4j | La actualización del nivel de registro para el archivo
- 7. ¿Desactivar la advertencia de C++ a nivel de proyecto?
- 8. Significados de nivel de advertencia de Visual Studio?
- 9. ¿Conoce libs de Python para enviar/recibir archivos usando Bittorent?
- 10. Cambio del Sur migración del directorio de
- 11. Reducir el nivel de advertencia de Eclipse (tipo)
- 12. vinculando bibliotecas de terceros
- 13. "Advertencia de memoria recibida. Nivel = 2" con 4.x?
- 14. Notificación de cambio del sistema de archivos a nivel de archivos en Mac OS X
- 15. Almacenamiento de contraseñas para servicios de terceros
- 16. ¿Qué código resalta las libs para Java?
- 17. Android problemas libs de archivos de expansión APK
- 18. Top constante el nivel de referencia de advertencia para el modelo Mongoid
- 19. Rails 3.2 Advertencia de obsolescencia del registro de silencio
- 20. macdeployqt y bibliotecas de terceros
- 21. Python TUI libs
- 22. Depuración del cambio de atributo DOM
- 23. Actualizando Symfony2 libs?
- 24. sustituto COM para componente de terceros
- 25. Inspección de dependencias de libs/ejecutables estáticos
- 26. cmake encuentra mal las libs de python
- 27. Encontrar licencias de terceros con Nuget
- 28. ndk-gdb con múltiples libs
- 29. ¿Cómo vincular a libs de impulso dinámico?
- 30. Prevención del cambio de tamaño de UIImage para un UIButton
El número de punto 1 es exactamente lo que estaba buscando, ¡gracias! – Samaursa