2011-07-16 14 views
11

Estoy construyendo una aplicación C++ en la línea de comandos (usando make con una biblioteca de código abierto (Xerces 2.8)). Uno de los archivos incluye un archivo del sistema OSX,¿Cuál es la ruta predeterminada para incluir archivos del sistema OSX al compilar una aplicación C++?

#include <TextUtils.h> 

Cuando escribo make -n para determinar el comando utilizado para compilar el fichero dado, no hay ruta de inclusión para los archivos del marco del sistema proporcionadas. Por lo tanto, supongo que en OSX el compilador gcc busca en una ubicación predeterminada para los archivos de inclusión del sistema.

Me gustaría saber de qué se trata. Cuando busco TextUtils.h, veo muchas versiones del archivo en diferentes ubicaciones, incluidos algunos posibles candidatos diferentes para lo que podría ser una ubicación predeterminada.

¿Cómo puedo determinar la ruta predeterminada que usa el sistema para los archivos de inclusión del sistema?

+1

He visto esa pregunta y no es relevante para mi escenario (y mi pregunta no fue respondida allí) porque esa pregunta es con respecto a Xcode, mientras que mi pregunta es con respecto a ejecutar gcc directamente en el comando línea. –

+0

Mis disculpas, Mi reacción inicial fue un doble, por desgracia, Lamentablemente, no me permite eliminar el "Cerrar". Pero espero que este comentario aquí disuada a la gente de votar para cerrarlo más. –

Respuesta

18

ejecutando el siguiente comando

# echo "" | gcc -xc - -v -E 

salida voluntad la configuración buildin de gcc entre los cuales están el defecto incluye.

+0

Gracias. Esto señala el camino. Sin embargo, el resultado relevante del comando anterior apunta a/System/Library/Frameworks, mientras que la ruta real del archivo es /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/Encabezados. ¿Puedes arrojar luz? –

+1

¿Puedes explicarme qué hace exactamente esto? Veo que me da mi ruta de inclusión predeterminada, pero ¿cómo la cambio? – Tommy

+1

Preprocesa un archivo vacío (provisto en stdin por el eco) y muestra la línea de comandos para las etapas individuales del proceso de compilación. El valor predeterminado es que creo que proviene de un archivo de especificaciones, pero no sé mucho sobre eso. Al menos puede ignorar las rutas predeterminadas con '-nostdinc' – Eelke

Cuestiones relacionadas