Novo em C ++; Conhecimento básico de includes, bibliotecas e processo de compilação. Fiz alguns makefiles simples ainda.
Meu projeto atual envolve o uso de uma API informix DB e preciso incluir arquivos de cabeçalho em mais de um diretório não padronizado. Como escrever isso? Não encontrei nada na rede, provavelmente porque não usei bons termos de pesquisa
Esta é uma maneira que eu tentei (não funciona). Só para mostrar o makefile
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
Você precisa usar
-I
com cada diretório. Mas você ainda pode delimitar os diretórios com espaços em branco se usar make (GNU)foreach
:fonte
$(foreach,,)
INC_PARAMS=$(INC:%=-I%)
com substituições .$(foreach,,)
é mais legível, mas as substituições são tão comumente usadas que é bom familiarizar-se como funcionam de qualquer maneira.INC_PARAMS = $(addprefix -I,$(INC))
.$(foreach,,)
também.