这是一个小故事
这些天我试图追踪Makefile
. 根据EDK override mechanism
,一个组件同时使用覆盖路径下的同名源代码编译,其余在组件目录下。
假设有两个同名的头文件,目录路径如下:
组件目录 -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 路径(组件路径)获取第一个找到的文件?
谢谢回答。