2009-04-14 17 views
17

Me gustaría agregar ~/include a mi ruta include para todos los proyectos mientras uso Xcode, algo así como establecer la variable de entorno CPLUS_INCLUDE_PATH en Linux. (Consulte here para la pregunta de Linux relacionada.)Cómo agregar una ruta de inclusión global para xcode

¿Es esto posible en Xcode? Intenté configurar la variable de entorno anterior, pero parece que no funciona. (Y si es posible, también me gustaría establecer rutas relacionadas, como LIBRARY_PATH y LD_LIBRARY_PATH).

Respuesta

14

Según Apple's Docs, que son capaces para proporcionar un valor predeterminado para cualquier configuración de compilación utilizando un environment variable.

En este caso, querrá establecer HEADER_SEARCH_PATHS. Por alguna razón que no entiendo, esto no funciona. Funciona bien para otras configuraciones (por ejemplo, OTHER_CFLAGS), pero no para HEADER_SEARCH_PATHS. Puede ver cuál es el nombre de la variable para cualquier configuración abriendo el asistente de investigación en la ventana de configuración de compilación (botón de libro en la parte inferior izquierda).

Una var que funciona es USER_HEADER_SEARCH_PATHS, que es como lo que quiere, pero sólo funciona para las rutas entre comillas dobles (no en paréntesis angulares.)

Así

#include "bar.h" 

quiere trabajar, pero

#include <bar.h> 

no lo haría.

PLIST configuración de generación de referencia el artículo anterior sobre las variables de entorno debe terminar buscando algo como esto:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<dict> 
    <key>USER_HEADER_SEARCH_PATHS</key> 
    <string>~/test</string> 
</dict> 
</plist> 

Espero que ayude.

0

Agregue la configuración de compilación HEADER_SEARCH_PATHS a su proyecto de Xcode. Esta configuración toma una lista de rutas separadas por espacios y si la ruta finaliza en una estrella doble (**), buscará subdirectorios recursivamente. Así que para responder por su ejemplo, establecer HEADER_SEARCH_PATHS a:

~/include 

Si tuviera una serie de caminos para incluir, establecería a algo así como:

~/include ~/my_other_includes/** /usr/local/special_frameworks/** 
+0

quiero un entorno mundial * *, de modo que yo no tengo que añadir el mismo camino para cada proyecto de Xcode. –

+1

Ok, en realidad no dijiste eso originalmente. Como dijo Jesse, también puedes establecer configuraciones de construcción en tu entorno y supongo que eso está funcionando para ti. –

-3

Las configuraciones de compilación no son variables de entorno, y las variables de entorno no son configuraciones de compilación. Establecer una variable de entorno no afectará las compilaciones de Xcode.

USER_HEADER_SEARCH_PATHS es una configuración de compilación, y al poner una lista de rutas en ella logrará lo que desea. Si configura el valor en el inspector de un objetivo, tendrá efecto solo para ese objetivo (y solo para las configuraciones de compilación que designe). Si lo configura en el inspector del proyecto, tendrá efecto en todos los objetivos del proyecto, a menos que un objetivo lo anule con su propia configuración.

Para las rutas que son específicas de su máquina, probablemente debería definir un Árbol de fuentes en las Preferencias de Xcode, como LOCAL_INCLUDE = ~/include. Luego defina USER_HEADER_SEARCH_PATHS = $(LOCAL_INCLUDE) en el proyecto. De esta forma, otras personas pueden abrir su proyecto y compilarlo configurando su Árbol de origen en la ubicación particular de las inclusiones locales en su máquina, sin tener que cambiar el archivo del proyecto.

+1

Establecer variables de entorno * no * afecta la configuración de compilación. Lo dice claramente en los documentos de Apple, y funciona. –

+1

Su afirmación no es congruente con el uso práctico. -1 para adivinar. – ptoinson

0

Sólo elige .c o archivo .m en sus archivos "Grupos & Tab" y seleccione "Obtener información" a través de RMB, continuación, en "construir" puede agregar opciones del compilador adicionales, como por -I adicionales incluyen searchpath.

1

Para cualquiera de ustedes queridos benditos que están tratando de lograr esto, o cualquier otra truco de ~/.MacOSX/environment.plist, aka variables ambientales globales en este mundo post-Montaña-León, echa un vistazo a EnvPane - An OS X preference pane for environment variables

EnvPane es un panel de preferencias para Mac OS X 10.8 (Mountain Lion) que le permite establecer variables de entorno para todos los programas en sesiones tanto gráficas como de terminal. No solo restaura el soporte para ~/.MacOSX/environment.plist en Mountain Lion, sino que también publica sus cambios en el entorno de inmediato, sin la necesidad de cerrar sesión y volver a entrar. Esto funciona incluso para los cambios realizados editando manualmente ~/.MacOSX/environment.plist, no solo los cambios realizados a través del panel de preferencias.

enter image description here

Cuestiones relacionadas