Si quiero incluir directorios para buscar archivos de encabezado, ¿cuál es la forma preferida y por qué?-I dir vs. -system dir
Respuesta
Desde el gcc documentation for -I:
Añadir el directorio dir a la cabeza de la lista de directorios que se debe buscar los archivos de cabecera. Esto se puede utilizar para anular un archivo de encabezado del sistema, sustituyendo su propia versión, ya que estos directorios se buscan antes que los directorios del archivo de encabezado del sistema. Sin embargo, no debe usar esta opción para agregar directorios que contengan archivos de encabezado de sistema proporcionados por el proveedor (use -isystem para eso). Si usa más de una opción -I, los directorios se escanean en orden de izquierda a derecha; los directorios del sistema estándar vienen después.
Si un sistema estándar incluye un directorio, o un directorio especificado con -isistema, también se especifica con -I, se ignorará la opción -I. El directorio aún se buscará, pero como un directorio del sistema en su posición normal en el sistema, incluya la cadena. Esto es para garantizar que el procedimiento de GCC para reparar encabezados de sistema defectuosos y el orden de la directiva include_next no se cambien inadvertidamente. Si realmente necesita cambiar el orden de búsqueda de los directorios del sistema, use las opciones -nostdinc y/o -isystem.
Por lo tanto, -I
es probablemente la opción preferida para especificar la ubicación de los archivos de encabezado, excepto en casos especiales, como los encabezados de sistema proporcionados por el proveedor.
Debe usar -I para especificar la ubicación de sus encabezados.
Los archivos que especifique con -isystem se buscan después -Me procesa y recibo un tratamiento especial por gcc (lo mismo que los encabezados de sistema estándar).
Una forma de ver esto es usar los encabezados que controla con -I
y los que no (sistema, libs de terceros) con -isystem
. La diferencia práctica se produce cuando las advertencias están habilitadas porque las advertencias que provienen de los encabezados -isystem
serán suprimidas.
Cuando incluye un encabezado "Myheader.h" con -I, el compilador genera el orden de búsqueda: "Myheader.h", "system/headers". Entonces, si no se puede encontrar algo en "MyHeader.h", recurrirá a "system/headers". Sin embargo, cuando usas -isystem, básicamente estás diciendo que reemplazas "system/headers" con lo que te doy. Así que ya no hay más recurrir a "sistema/encabezados".
- 1. ¿Por qué 'dir()' se llama 'dir' en python?
- 2. grails-app/utils dir
- 3. Django heroku dir estático
- 4. Python "dir" equivalente en Clojure
- 5. Jenkins (Hudson) SVN checkout dir
- 6. manipulación dir (__ DIR__) no funciona
- 7. proyecto Java vs Maven Proyecto (Eclipse), dir aclaración estructura necesaria
- 8. Ruby gema listada, pero no se cargará (gema en dir de usuario, no ruby dir)
- 9. ¿Qué significa la función dir() de Python?
- 10. Ruby equivalente al "dir" de Python?
- 11. ¿Cómo hago 'dir/s/b' en PowerShell?
- 12. Deshacer "git add <dir>"?
- 13. Comportamiento extraño de Windows DIR command
- 14. Cabal: dir de compilación con fuente
- 15. cmd dir/b/s más la fecha
- 16. Git tirando depende de la corriente dir
- 17. sphinx import parent dir primer archivo?
- 18. Comando ls o dir en ghci
- 19. git --git-dir no funciona como debería
- 20. IIS 7.5 Express Nuevo Virtual Dir
- 21. Interfaz K & R para leer directorios: estructura DIR superflua?
- 22. ¿Puedo poner código elisp arbitrario en .dir-locals.el?
- 23. La función Dir() no funciona en Mac Excel 2011 VBA
- 24. hacer $ (dir) o $ (notdir) en un camino con espacios
- 25. ¿Cómo podría agregar dir a $ PATH en Makefile?
- 26. git sin la carpeta .git - un git-dir remoto
- 27. ¿Cómo obtengo el nombre dir de un archivo con Perl?
- 28. ¿Cuál es el equivalente de Groovy al dir de Python()?
- 29. no puede conseguir a rsync opción para excluir dir
- 30. Cómo eliminar un directorio no vacío utilizando la clase Dir?
Incluyendo o excluyendo la biblioteca estándar C de host? –
Ni uno, ni el otro. Simplemente lea en el manual de GCC sobre las opciones de preprocesamiento y tropecé con estos dos. – helpermethod