Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 检查哪些文件是';制作';包括…在内_C_Gcc_Makefile - Fatal编程技术网

C 检查哪些文件是';制作';包括…在内

C 检查哪些文件是';制作';包括…在内,c,gcc,makefile,C,Gcc,Makefile,我正在编译一个内核模块,其中包括,但我不确定编译器是使用/usr/includes/(错误)中的unistd.h,还是使用/usr/src/kernel-3.x.x/arch/x86/includes/(正确)中的 我的问题是:如何检查编译器使用的是哪一个 还有,有没有一种方法可以从内核头强制文件,而不是从/usr/include强制文件 cpp code.c | grep unistd.h 或 回答问题的第二部分: 还有,有没有一种方法可以从内核头强制文件,而不是从/usr/include强

我正在编译一个内核模块,其中包括
,但我不确定编译器是使用
/usr/includes/
(错误)中的
unistd.h
,还是使用
/usr/src/kernel-3.x.x/arch/x86/includes/
(正确)中的

我的问题是:如何检查编译器使用的是哪一个

还有,有没有一种方法可以从内核头强制文件,而不是从
/usr/include
强制文件

cpp code.c | grep unistd.h


回答问题的第二部分:

还有,有没有一种方法可以从内核头强制文件,而不是从
/usr/include
强制文件

cpp code.c | grep unistd.h
您可以将
-nostinc
选项传递到
gcc

不要在标准系统目录中搜索头文件。只搜索您用-I选项指定的目录(以及当前文件的目录,如果合适)


我认为
gcc-E code.c | grep unistd.h
不会打印任何内容,因为
#include
将被它的内容所取代,我认为在预处理后不会说“unistd.h”。我弄错了吗?@Eregrith,试试看,在我的电脑上:
david@debian:~$cpp code.c| grep unistd.h
返回
#1”/usr/include/x86_64-linux-gnu/asm/unistd.h“1 3 4
#5”/usr/include/x86_64-linux-gnu/asm/unistd.h”2 3 4
好的,我几分钟后再试一次。强制其中一个路径怎么样?@AlterMann很遗憾,我在工作时运行windows,无法轻松尝试:(谢谢你告诉我:)当其他目录中安装了其他库时,有必要扩展搜索路径,以便找到库。编译器选项-I和-L分别将新目录添加到include路径和library搜索路径的开头。谢谢您,先生,我正在查找:)