linux - 针对模块的内核 Makefile 链接

标签 linux module makefile linker kernel

我目前正在尝试编写一些内核模块代码。 我正在使用现有内核模块的功能。 听众包含在我的 .c 文件中,但我不知道如何正确地将我的代码与内核模块链接

在正常的用户空间 Makefile 中,我会知道但不知道如何使用内核模块做到这一点

有什么建议吗?

这是我的生成文件

KERNELDIR ?= /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
INC := -I/usr/src/kernels/$(shell uname -r)/include

obj-m := scif.o 

all:
    $(MAKE) V=1 -C $(KERNELDIR) M=$(PWD) modules
clean:
    make -C $(KERNELDIR) M=$(PWD) clean

最佳答案

您不要在模块之间“链接”代码。除了包含头文件之外,模块只能调用在主内核或其他模块中导出的函数(使用 EXPORT_SYMBOL 或 EXPORT_SYMBOL_GPL 等)。此外,请确保 modeules.dep 中的模块依赖关系正确,否则模块在加载时会报错。

关于linux - 针对模块的内核 Makefile 链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28454610/

相关文章:

makefile - 与现有目标建立依赖关系并缺少依赖关系

c++ - CodeLite:makefile 中的相对路径

node.js - 如何用node+express共享一个对象

android - Qt Android 附加安装

c++ - "Segmentation fault"在linux上实现intel MKL的DFT

linux - 通过 linux 脚本将输出写入文件?

module - zfcUser getState 在另一个模块中

c - 是否可以使用 CMAKE 在 make install 上重新编译一些源文件

linux - v4l2-ctl - 视频长度和流计数

linux - 如何在 shell 脚本中打印格式化为 cat 命令的 echo 语句?