Armadilloフォーラム

デバイスドライバコンパイルのMAKEFILEについて

faxdfjk

2022年12月14日 14時00分

複数ソース用に以下のようにmakefileをアレンジしてみましたがエラーになってしまいます。
複数ソースの場合はどのように書いたら良いでしょうか。

<<<<<<<< 以下 makefile >>>>>>>>>>>>
obj-m := test.o
test-objs := main.o sub.o
CC=arm-linux-gnueabihf-gcc
ARCH=arm
KBUILD_DIR = /lib/modules/4.14-at49/build
all:
make -C $(KBUILD_DIR) M=$(shell pwd) ARCH=$(ARCH) modules
clean:
make -C $(KBUILD_DIR) M=$(shell pwd) clean

コメント

test.oが、main.cから生成されるmain.oとsub.cから生成されるsub.oの2つを
リンクしたオブジェクトである。という意図ならtest-objsではなくtest-yではないでしょうか。

カーネルソースのDocumentation/kbuild/modules.txtにかいてあります。
モジュールのビルドスクリプトの規則がまとまっているので、このファイルの一読をおすすめします。