在我的make文件中的CINCLUDE路径中,有两个具有相同名称的 header 。
我无法删除其中一个。如何指示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
然后,当您编译它们时:
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
)的顺序,它决定了搜索的顺序(还有其他事情,例如 header 是否与系统 header 命名相同,但此处不必关心我们)。关于makefile - 包含路径中具有相同名称的两个 header ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3784848/