0

Linux で簡単なデバイス ドライバーを作成しています。メイクファイルでは、通常、最初の行を次のように記述します

obj-m += hello.o 

helloモジュールはどこに書かれていますか。他のメイクファイルで、シンボル+=が置き換えられているのを見たこと:=があります。2つの重要な違いは何ですか?また、可能なオプションは何ですか?

4

1 に答える 1

2

実際には、Kbuildはユーザーの Makefile を含める前にobj-m他の変数 ( scripts/Makefile.build+=を参照) と一緒にリセットするため、と割り当てに違いはありません:=(行が 1 つしかないと仮定しhello.oます)。

個人的には、割り当て ( +=) を追加することをお勧めします。これにより、次のような愚かなエラーが防止されます。

obj-m := hello.o
obj-m := world.o

最後の行が最初の行のコピー アンド ペーストであり、割り当てタイプを に変更するのを忘れた場合、 (なしで) コンパイルされる+=だけになります。world.ohello.o

また、モジュールの makefile の書き方に関する Kbuild のドキュメントを読むことをお勧めします。

于 2012-02-08T11:18:13.757 に答える