Nuevo en C ++; Comprensión básica de inclusiones, bibliotecas y el proceso de compilación. Hice algunos archivos MAKE simples todavía.
Mi proyecto actual implica el uso de una api de DB de informix y necesito incluir archivos de encabezado en más de un directorio no estándar. ¿Cómo escribir eso? No encontré nada en la red, probablemente porque no utilicé buenos términos de búsqueda.
Esta es una de las formas en que intenté (no funciona). Solo para mostrar el archivo MAKE
LIB=-L/usr/informix/lib/c++
INC=-I/usr/informix/incl/c++ /opt/informix/incl/public
default: main
main: test.cpp
gcc -Wall $(LIB) $(INC) -c test.cpp
#gcc -Wall $(LIB) $(INC) -I/opt/informix/incl/public -c test.cpp
clean:
rm -r test.o make.out
Necesita usar
-I
con cada directorio. Pero aún puede delimitar los directorios con espacios en blanco si usa marcas (GNU)foreach
:fuente
$(foreach,,)
INC_PARAMS=$(INC:%=-I%)
con sustituciones .$(foreach,,)
es más legible, pero las sustituciones se utilizan con tanta frecuencia que es bueno familiarizarse con su funcionamiento de todos modos.INC_PARAMS = $(addprefix -I,$(INC))
.$(foreach,,)
también.