117 votes

Comment définir plusieurs chemin d'inclusion dans Makefile

Nouveau en C ++; Compréhension de base des inclus, des bibliothèques et du processus de compilation. A fait quelques makefiles simples encore.

Mon projet actuel implique l’utilisation d’une API informix DB et j’ai besoin d’inclure des fichiers d’en-tête dans plusieurs répertoires non standard. Comment écrire ça? Havent n'a rien trouvé sur le net, probablement parce que je n'ai pas utilisé de bons termes de recherche

C’est un moyen 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
 

129voto

Antoine Pelisse Points 5067

Vous devez ajouter tous les répertoires avec -I :

 INC=-I/usr/informix/incl/c++ -I/opt/informix/incl/public
 

103voto

wilhelmtell Points 25504

Vous devez utiliser -I avec chaque répertoire. Mais vous pouvez toujours délimiter les répertoires avec des espaces si vous utilisez (GNU) make foreach :

 INC=$(DIR1) $(DIR2) ...
INC_PARAMS=$(foreach d, $(INC), -I$d)
 

1voto

groovehunter Points 945
 INC=-I/usr/informix/incl/c++ -I/opt/informix/incl/public
 

merci d'avoir écouté ... juste après avoir posté, j'ai trouvé la possibilité manquante que je n'avais pas encore essayée

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X