Linux で簡単なデバイス ドライバーを作成しています。メイクファイルでは、通常、最初の行を次のように記述します
obj-m += hello.o
hello
モジュールはどこに書かれていますか。他のメイクファイルで、シンボル+=
が置き換えられているのを見たこと:=
があります。2つの重要な違いは何ですか?また、可能なオプションは何ですか?
実際には、Kbuildはユーザーの Makefile を含める前にobj-m
他の変数 ( scripts/Makefile.build+=
を参照) と一緒にリセットするため、と割り当てに違いはありません:=
(行が 1 つしかないと仮定しhello.o
ます)。
個人的には、割り当て ( +=
) を追加することをお勧めします。これにより、次のような愚かなエラーが防止されます。
obj-m := hello.o
obj-m := world.o
最後の行が最初の行のコピー アンド ペーストであり、割り当てタイプを に変更するのを忘れた場合、 (なしで) コンパイルされる+=
だけになります。world.o
hello.o
また、モジュールの makefile の書き方に関する Kbuild のドキュメントを読むことをお勧めします。