2010-10-18 7 views
13

Tengo un sistema de Linux en mi lugar de trabajo con paquetes antiguos y sin acceso a la raíz. Estoy compilando paquetes que necesito desde la fuente con --prefix=[somewhere in homedir]. Mi problema es que no puedo averiguar cómo convencer a configure para que busque archivos de encabezado en un directorio específico. La fuente es cpp. Intenté con las variables de entorno relacionadas con g++ y buscando banderas y Google, pero no tuve éxito. ¿Alguien podría ayudarme a resolver esto?Cómo especificar el directorio de inclusión para la secuencia de comandos de configuración

Respuesta

15

La forma normal de hacerlo es --with-<feature>=<header directory>.

+0

Gracias. Funcionó. – jakab922

+7

Si funcionó, entonces no nos deje colgando aquí ... –

+0

¿Qué va en el ? – Chara

22

Normalmente puede pasar banderas de compilador adicionales dentro de CXXFLAGS. Para gcc, puede especificar más directorios de inclusión con -I/some/dir, p. Ej.

$ ./configure CXXFLAGS="-I/some/dir/" 

donde /some/dir/ contiene los encabezados.

+4

CXXFLAGS es para el compilador de C++, por lo que CFLAGS para compilador de C. – thor

3

Es mejor usar CPPFLAGS para especificar directorios de inclusión.

./configure CPPFLAGS="-I/your/whatever/includedir" 
+0

Si bien es relevante, esta respuesta no indica por qué esto podría funcionar cuando falle la especificación del mismo directorio en el entorno antes de ejecutar 'configure'. – eh9

6
CPPFLAGS = C Preprocessor Flags, these flags will be used for C and C++ compilation. 

CFLAGS = C Flags, these flags will be used when compiling C. 

CXXFLAGS = C++ Flags, these flags will be used when compiling C++. 

La bandera -I especifica un directorio de inclusión adicionales para ser utilizados durante la compilación.

lo general, es una buena idea usar CPPFLAGS al especificar incluir directorios, de esa manera usted sabe que va a ser utilizado incluso si el proyecto tiene alguna fuente que se compila como C.

Por supuesto, también puede haber circunstancias donde solo desea que el directorio de inclusión sea utilizado por C o C++, pero no ambos. En ese caso, sería mejor que te sirvieras usando CFLAGS o CXXFLAGS.

Cuestiones relacionadas