Makefile 包含路径中具有相同名称的两个标头

Makefile 包含路径中具有相同名称的两个标头,makefile,Makefile,在我的make文件的CINCLUDE路径中,有两个同名的标题 我不能移除其中一个。如何指示makefile优先处理特定文件夹中的头文件。这通常是由编译器指定的。例如,使用gcc,可以创建以下文件: qq.c: #include <qq.h> int main (void) { return 0; } 1/qq.h: #error file number 1 2/qq.h: #error file number 2 换句话说,指

在我的make文件的CINCLUDE路径中,有两个同名的标题


我不能移除其中一个。如何指示makefile优先处理特定文件夹中的头文件。

这通常是由编译器指定的。例如,使用gcc,可以创建以下文件:

qq.c:
    #include <qq.h>
    int main (void) {
        return 0;
    }
1/qq.h:
    #error file number 1
2/qq.h:
    #error file number 2
换句话说,指定包含路径的顺序(使用
-I
)决定了搜索的顺序(还有其他一些事情,例如头是否与系统头命名相同,但这里我们不必担心)

pax> gcc -I1 -I2 -o qq qq.c
In file included from qq.c:1:
1/qq.h:1:2: #error file number 1

pax> gcc -I2 -I1 -o qq qq.c
In file included from qq.c:1:
2/qq.h:1:2: #error file number 2