在我的linux( 3.16.0-38-generic#52~14.04.1-Ubuntu )上,我通过以下方式包含kfifo标头:
#include <linux/kfifo.h>
根据linux-module-h-no-such-file-or-directory,我还通过以下方式安装了内核头文件:
sudo apt-get install linux-headers-$(uname -r)
该文件位于:
/usr/src/linux-headers-3.16.0-38/include/linux/kfifo.h
但是,在编译时,仍然无法找到标题:
kfifo_test.c:5:25:致命错误:linux / kfifo.h:没有这样的文件或目录
有任何帮助吗?感谢。
似乎gcc没有找到头文件。
通过以下方式编译时:
gcc -I "/usr/src/linux-headers-3.16.0-38/include/" kfifo_test.c
它找到了linux/kfifo.h
,但找不到asm/linkage.h
,我猜这是linux/kfifo.h
使用的。
包含来自的文件 /usr/src/linux-headers-3.16.0-38/include/linux/kernel.h:6:0, 来自/usr/src/linux-headers-3.16.0-38/include/linux/kfifo.h:53, 来自kfifo_test.c:7:/usr/src/linux-headers-3.16.0-38/include/linux/linkage.h:7:25:致命错误:asm / linkage.h:没有这样的文件或目录
然后,在编译时添加另一个-I
选项:
gcc -I"/usr/src/linux-headers-3.16.0-38/include/" -I"/usr/src/linux-headers-3.16.0-38/arch/x86/include/" kfifo_test.c
找到asm/linkage.h
,但再次递归地发生更多错误。 (例如fatal error: asm/early_ioremap.h: No such file or directory
)。