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. Django heroku dir estático
- 3. grails-app/utils dir
- 4. Python "dir" equivalente en Clojure
- 5. manipulación dir (__ DIR__) no funciona
- 6. Jenkins (Hudson) SVN checkout dir
- 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. cmd dir/b/s más la fecha
- 10. Comportamiento extraño de Windows DIR command
- 11. Deshacer "git add <dir>"?
- 12. ¿Qué significa la función dir() de Python?
- 13. Cabal: dir de compilación con fuente
- 14. ¿Cómo hago 'dir/s/b' en PowerShell?
- 15. Comando ls o dir en ghci
- 16. Ruby equivalente al "dir" de Python?
- 17. git --git-dir no funciona como debería
- 18. IIS 7.5 Express Nuevo Virtual Dir
- 19. Git tirando depende de la corriente dir
- 20. sphinx import parent dir primer archivo?
- 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. Configuración de PHP tmp dir - PHP upload no funciona
- 25. cómo cambiar la ruta a site-packages dir en easy_install
- 26. equivalente de (dir/b> files.txt) en PowerShell
- 27. git sin la carpeta .git - un git-dir remoto
- 28. no puede conseguir a rsync opción para excluir dir
- 29. Suprimir los nombres de directorio enumerados con DIR
- 30. Función Dir en Excel 2010 VBA no funciona
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