我正在为设备驱动程序构建一个树外内核模块。总的来说,一切进展顺利,但我对使用 kbuild 和构建系统有一些疑问:
- 我发现了这篇很棒的帖子:Is it possible to set CFLAGS to a linux kernel module Makefile? ,它显示了如何修改编译器标志。结果,我现在将我的编译器标志设置为:
ccflags-y := -O2 -Wall -Wextra -I $(DRIVER_INC_DIR)
,$(DRIVER_INC_DIR)
我的驱动程序的各种头文件在哪里。请注意,我的驱动程序由几个 .o 文件组成,这些文件合并为一个 .ko。我想显示编译器为我自己的代码生成的警告,而不是 Linux 中的代码(例如 linux/module.h)。我怎样才能做到这一点?我知道在用户空间应用程序中有-isystem
选项,但我想知道这将如何应用在这里(如果有的话)。 modules_install
编译后使用与仅复制 .ko 文件有什么区别吗?我问的原因是因为我认为手动复制对我来说更容易,因为我还需要支持“make uninstall”目标(并且没有modules_uninstall
,只有 aclean
,它似乎不会从 .ko 中删除安装位置)。
在此先感谢您的帮助。