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

时间:2010-09-24 06:54:21

标签: makefile

在我的make文件中的CINCLUDE路径中,有两个具有相同名称的标头。

我无法删除其中一个。如何指示makefile优先处理特定文件夹中的头文件。

1 个答案:

答案 0 :(得分:5)

这通常是编译器指定的内容。例如,使用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

然后,当你编译它们时:

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

换句话说,它是指定包含路径的顺序(使用-I),它指示搜索的顺序(还有其他一些事项,例如标题是否与系统标题相同,但它们需要这里不关心我们。)