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搜索路径的开头。谢谢您,先生,我正在查找:)