2012-09-01 14 views
5

Im construyendo software som usando boost 1.48 en osx 10.8 con gcc versión 4.2.1 y he comenzado a recibir advertencias -Wparentheses-equality para la fuente de impulso.silencio -Wparentheses-error de igualdad

equality comparison with extraneous parentheses 
    [-Werror,-Wparentheses-equality] 
     else if((state->type == syntax_element_long_set_rep)) 

que cambiaría el código pero no quiero jugar con la biblioteca, ¿Cómo puedo silenciar la advertencia y hacer que el compilador continuar?

Respuesta

10

De los GCC manual:

mayoría de estos tienen ambas formas positivas y negativas; la forma negativa de -ffoo sería -fno-foo.

Probar -Wno-parentheses-equality.

+0

soy bastante nuevo en esto, ¿quieres decir que debería agregar -W-paréntesis-igualdad como argumento para el comando make? Lo intenté y todavía recibo el error –

+0

@jonathantopf No, esta es una opción para el compilador. Si usa Make, generalmente esto se almacena en una variable como, por ejemplo, 'CXXFLAGS'. Intente buscar '-Wall' (una opción común que también se almacenaría allí) y agregue esta opción al lado. –

3

Como alternativa a simplemente deshabilitar la advertencia, también puede especificar ciertas rutas para contar como rutas 'del sistema'. Las advertencias se suprimen para los encabezados del sistema, por lo que puede declarar que los encabezados de las bibliotecas en particular son encabezados del "sistema" y que no se preocupan por las advertencias en ellos. argumento

de sonido metálico de esto es --system-header-prefix=<prefix>

Así, por ejemplo, usted podría decir "--system-header-prefix=boost/"

http://clang.llvm.org/docs/UsersManual.html#controlling-diagnostics-in-system-headers

Y a juzgar por el mensaje de error en realidad está utilizando sonido metálico y no gcc.