繁体   English   中英

kbuild外部模块问题

[英]kbuild external module questions

我正在为设备驱动程序构建树外内核模块。 总体而言,一切进展顺利,但是我对使用kbuild和构建系统有一些疑问:

  1. 我发现了这篇出色的文章: 是否可以将CFLAGS设置为Linux内核模块Makefile? ,其中显示了如何修改编译器标志。 结果,我现在将编译器标志设置为: ccflags-y := -O2 -Wall -Wextra -I $(DRIVER_INC_DIR) ,其中$(DRIVER_INC_DIR)是驱动程序的各种头文件。 请注意,我的驱动程序由几个.o文件组成,这些文件被合并为一个.ko文件。 我想显示由编译器为我自己的代码生成的警告,但不显示Linux中的代码(例如linux / module.h)。 我该怎么做? 我知道在用户空间应用程序中有-isystem选项,但是我想知道这在这里如何应用(如果有的话)。
  2. 使用modules_install与在编译.ko文件后仅对其进行复制之间有什么区别吗? 我问的原因是因为我认为手动进行复制比较容易,因为我还需要支持“ make uninstall”目标(并且没有modules_uninstall ,只是一个clean ,似乎并没有删除。 ko的安装位置)。

先谢谢您的帮助。

我已经能够回答#1。 基本上,在kbuild内部, LINUXINCLUDE变量使用-I从Linux头文件中提取所有源代码。 结果,我将此行添加到我的Makefile中:

LINUXINCLUDE := $(subst -I, -isystem, $(LINUXINCLUDE))

这将所有-I标志替换为-isystem ,因此,警告将被忽略。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM