【发布时间】:2018-06-04 13:42:30
【问题描述】:
我正在为设备驱动程序构建一个树外内核模块。总的来说,一切进展顺利,但我对使用 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,只有clean,它没有出现从安装位置删除 .ko)。
提前感谢您的帮助。
【问题讨论】: