2011-04-27 11 views
11

Desde este enlace: http://gcc.gnu.org/onlinedocs/gcc/Directory-Options.htmlGCC opción de directorio -isystem

Si un sistema estándar incluye directorio o un directorio especificado con -isystem, también se especifica con -I, la opción -I será ignorado El directorio aún se buscará pero como un directorio de sistema en su posición normal en el sistema include chain.

¿Cuál es la manera de ejecutar esto?

[14:45:37 Wed Apr 27] ~/junkPrograms/src $gcc hello.c -isystem -I ../include/ 
../include/: file not recognized: Is a directory 
collect2: ld returned 1 exit status 
[14:45:42 Wed Apr 27] ~/junkPrograms/src $gcc hello.c -I isystem ../include/ 
../include/: file not recognized: Is a directory 
collect2: ld returned 1 exit status 
[14:45:57 Wed Apr 27] ~/junkPrograms/src $ 

y quiere decir esto que si -isystem está conectado, la dir se le dará la precedencia de un directorio normal del sistema?

Respuesta

17

El documentation dice:

-isystem dir

Buscar dir para los archivos de cabeza, después de todos los directorios especificados por -I pero antes de los directorios del sistema estándar. Marqúelo como directorio de sistema, de modo que reciba el mismo tratamiento especial que se aplica a los directorios de sistema estándar. Si dir comienza con =, entonces = será reemplazado por el prefijo sysroot; ver --sysroot y -isysroot.

Así que lo está utilizando mal. Necesita especificar un directorio para la opción -isystem en sí misma, no funciona como un "modificador" de la opción -I como parece intentarlo.

Creo que su comando debe ser:

$ gcc -isystem ../include hello.c 
+0

¿Qué documentación es eso? Por favor dame el enlace. –

+0

Ok, vi el enlace ahora. –

+0

Gracias, ese enlace lo deja en claro. No soy un hablante de inglés nativo. Resultaba difícil entender la cita en PF. –

Cuestiones relacionadas