web-dev-qa-db-fra.com

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

Ceci est une façon 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
85
groovehunter

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

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

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)
82
wilhelmtell