ここに短い話があります
最近、私はのコンパイルプロセスを追跡しようとしましたMakefile
. によるとEDK override mechanism
、コンポーネントはオーバーライド パスの下の同じ名前のソース コードを使用してコンパイルされ、コンポーネントのディレクトリの下に残ります。
同じ名前のヘッダー ファイルが 2 つあるとします。ディレクトリ パスは次のとおりです。
コンポーネント ディレクトリ -D:\outside\inner\hello.h
オーバーライド ディレクトリ -D:\outside\inner\overrides\hello.h
そのため、D:\outside\inner\overrides
コンパイル中に使用されます。
しかし、ここで質問です!
インクルード パスを示すマクロを Makefile に追加できることがわかっています。例えば:
INC = -I D:\outside\inner
次に、次のような別のインクルード パスを追加しました。
INC = $(INC) -I D:\outside\inner\overrides
次のように Makefile でコマンドを設定した場合:
hello : hello.c hello.h
<Tab>gcc -c hello hello.c $(INC)
コンパイラは引き続きオーバーライド パスの下にある hello.h ファイルを取得しますか? それとも、INC パス (コンポーネント パス) を介して最初に見つかったファイルを取得しますか?
回答ありがとうございます。