Nouveau sur C ++; Compréhension de base des includes, des bibliothèques et du processus de compilation. J'ai encore fait quelques makefiles simples.
Mon projet actuel implique l'utilisation d'une api informix DB et j'ai besoin d'inclure des fichiers d'en-tête dans plus d'un répertoire non standard. Comment écrire ça? Je n'ai rien trouvé sur le net, probablement parce que je n'ai pas utilisé de bons termes de recherche
C'est une façon ce que j'ai essayé (ne fonctionne pas). Juste pour montrer le 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
Vous devez utiliser
-I
avec chaque répertoire. Mais vous pouvez toujours délimiter les répertoires avec des espaces si vous utilisez les make (GNU)foreach
:la source
$(foreach,,)
INC_PARAMS=$(INC:%=-I%)
avec des substitutions .$(foreach,,)
est plus lisible, mais les substitutions sont si couramment utilisées qu'il est bon de se familiariser de toute façon avec leur fonctionnement.INC_PARAMS = $(addprefix -I,$(INC))
.$(foreach,,)
aussi.