2011-10-19 14 views
12

Tengo una configuración de compilación que tiene algunas opciones "-Wno" para cubrir tanto 'gcc' como 'clang'. El problema es que gcc no reconoce algunos de los clang específicos y no puede compilarse debido a eso.¿Es posible hacer que gcc ignore las opciones de línea de comando desconocidas?

Ejemplo del error:

error: unrecognized command line option "-Wno-self-assign" 

¿Hay una manera de decirle a gcc hacer caso omiso de las opciones de línea de comandos que no reconoce?

Respuesta

5

Este es el valor predeterminado para gcc> = 4.4, ver https://gcc.gnu.org/gcc-4.4/changes.html

Antes de GCC 4.4, esto no es posible de lograr. La sugerencia anterior en -Wno-error = unknown-warning es incorrecta, y es posiblemente el resultado de una mala lectura del manual de gcc (donde "unknown-warning" se usa como ejemplo para una advertencia que gcc no reconoce).

+0

No tengo el momento para volver a probar ahora, pero el "-Wno-error = unknown- advertencia "la solución me había estado funcionando en el momento en que la publiqué. – Catskul

+0

Esto todavía imprime la advertencia si se encuentra algo más. Parece que no puede ser ayudado. –

0

Resulta que hay una advertencia unknown-warning que con -Werror se convierte en un error.

Esto se puede desactivar con:

-Wno-error=unknown-warning 
+0

Eso no funciona con arm-linux-androideabi-g ++ v4.6.3 que todavía da "error: opción no reconocida" --dynamic-linker '" –

+0

puede funcionar solo para los elementos pasados ​​a través del compilador. Si la interfaz transfiere las opciones al enlazador, el enlazador podría ser el que se queja. – Catskul

+0

echo 'int main() {return 42;}' | gcc -x c -Waaa -Wno-error = unknown-warning- no funciona para mí. –

Cuestiones relacionadas