2012-02-08 8 views
0

Linuxにシンプルなデバイスドライバを書いています。メイクファイルでは、通常、Linuxでのオブジェクトファイルのアドレス指定Makefile

helloが書かれたモジュールである
obj-m += hello.o 

として最初の行を書きます。私は他のメイクファイルで+=のシンボルが:=などに置き換えられているのを見てきました。両者の間にはどのような違いがありますか?また、可能な選択肢は何ですか?

+2

'make'プログラムのドキュメントを読むと、':= 'や' + = 'の意味がmakeファイル内で何を意味するのかが正確に分かります。例えば、[GNU Make manual](http://www.gnu.org/software/make/manual/)を参照してください。 –

+0

確かにそれを通過します。ありがとうございました。 – elyon

答えて

2

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

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

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

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

また、how to write module makefilesに関するKbuildのドキュメントを読むことをお勧めします。

+0

とった。どうもありがとうございました。何か疑念が浮かび上がるなら、戻ってくるだろう。 – elyon

関連する問題