我正在编译内核模块,我包括<asm/unistd.h>
,但我不确定编译器是否使用unistd.h
中的/usr/includes/
(错误)或者来自/usr/src/kernel-3.x.x/arch/x86/includes/
(右)。
我的问题是:如何检查这两个中的哪一个是编译器使用?
另外,有没有办法从内核头文件强制文件而不是/usr/include
中的文件?
答案 0 :(得分:1)
cpp code.c | grep unistd.h
或
gcc -E code.c | grep unistd.h
答案 1 :(得分:1)
回答问题的第二部分:
还有,有没有办法从内核头文件强制文件而不是/usr/include
中的文件?
您可以将-nostdinc
选项传递给gcc
:
&#34;不要在标准系统目录中搜索头文件。仅搜索您使用-I选项指定的目录(以及当前文件的目录,如果适用)。&#34;