0

カーネルモジュールのmakefileを書き込もうとしていますが、動作させることができません。以下を実行すると、この出力があります

$ make
make: Nothing to be done for 'all'.

ただし、端末で直接makeコマンドを実行すると、次のようになります。

$ make -C /lib/modules/$(uname -r)/build M=$(pwd) modules
make: Entering directory '/usr/src/linux-headers-3.5.0-17-generic'
   CC [M] <blah>
   Building modules, stage 2
   <blah>
make: Leaving directory...

私のMakefileの内容は次のとおりです(ソースファイルはmain.cです)

obj-m += main.o
all:
    make -C /lib/modules/$(shell uname -r)/build M=$(shell pwd) modules

makefileを使用する前に、*。oと*.koを削除します。に変更alldefaultても何も起こりません。

4

2 に答える 2

3

最も可能性の高い問題は、実際のタブ文字を使用して行の読み取りを開始せずmake -C ...、代わりに複数のスペースを使用したことです。 makeコマンドはすべてタブ文字で始まる必要があります。

于 2013-01-09T00:51:32.320 に答える
0
于 2013-01-09T00:54:49.193 に答える