web-dev-qa-db-ja.com

Makefileで複数のインクルードパスを定義する方法

C++の新機能。インクルード、ライブラリ、およびコンパイルプロセスの基本的な理解。まだいくつかの簡単なmakefileを作成しました。

私の現在のプロジェクトでは、informix DB APIを使用していますが、ヘッダーファイルを複数の非標準ディレクトリに含める必要があります。それを書く方法は? Haventがネット上で何かを見つけたのは、おそらく私が適切な検索用語を使用しなかったためでしょう

これは私が試した方法の1つです(動作しません)。メイクファイルを表示するだけ

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

すべてのディレクトリに-Iを追加する必要があります。

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

各ディレクトリで-Iを使用する必要があります。ただし、(GNU)makeのforeachを使用すると、ディレクトリを空白で区切ることができます。

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