カスタムヘッダーに依存する単純なキャラクターデバイスモジュールをコンパイルしたいと思います。このようにフォルダが整理され、
+ mymod.c
| customized-header.h
| customized-header.c
| Makefile
ではmymod.c
、このようにヘッダーが使用されます。
#include "customized-header.h"
Makefile で:
obj-m := mymod.o
mymod-objs := customized-header.o
KVERSION = $(shell uname -r)
PWD = $(shell pwd)
all:
make -C /lib/modules/$(KVERSION)/build M=$(PWD) modules
clean:
make -C /lib/modules/$(KVERSION)/build M=$(PWD) clean
モジュールは問題なくコンパイルされ、モジュールを介してロードできますsudo insmod
が、モジュールは正しく動作しません。を確認したところnm mymod.ko
、多くの vars と関数が欠落しています。リンクしたら止まったように見えますcustomized_header.o
。このヘッダーとその関数を削除すると、モジュールからヘッダー関数呼び出しがないと言って、目的の結果で完全にコンパイルされます。
ここで何がうまくいかなかったかわかりますか?