2017-04-08 18 views
0

私はUbuntuをVMWareにインストールしました。私の目的は、カーネルモジュールをビルドすることです。私は初心者です。私は基本的なモジュールを書いた。しかし、私は 'Makefile'でコンパイルできません。修正する必要があるのは何ですか? CファイルのLinuxカーネルモジュールを構築する際の問題

内容(kernel.c): - メイクファイルの

#include <linux/kernel.h> 
MODULE_LICENSE("GPL"); 

内容: -

obj-m+=kernel.o 

all: 
make -C /lib/modules/$(shell uname -r)/build/ M=$(shell PWD) modules 

clean: 
make -C /lib/modules/$(shell uname -r)/build M=$(shell PWD) clean 
+1

あなたが直面している問題の詳細や詳細を追加してください。あなたの*** Makefile ***に気付いていることの1つは、 'make'コマンドの先頭に空白があることです。 ' all: make -C/lib/modules/$(shell uname -r)/M = $(PWD)modules'をビルドします。 –

+1

イメージファイルに頼らなければならないコードを投稿するのは本当に難しいですか?私は、質問者が投稿に多くの努力をしていないときに指導を与えることはさらに難しいと思う。あなたが投稿した画像はいつか消えてしまいます。このポストは、今後の読者には無益です。 – alvits

+0

@vinodmaverick。私はあなたが提案した方法を試みた。それでも同じ問題があります。 – NoeDan

答えて

0

メイクは区切り文字ではなくスペースとしてTABを使用しています。あなたのMakefileは以下のように記述する必要があります。

obj-m+=kernel.o 

all: 
    make -C /lib/modules/$(shell uname -r)/build/ M=${PWD} modules 

clean: 
    make -C /lib/modules/$(shell uname -r)/build M=${PWD} clean 

$ {PWD}は環境変数です。 env変数を読み出すためにシェルする必要はありません。

+0

ありがとうございました。出来た。私が3日間タブについたことを信じられない。本当に本当にありがとう。 – NoeDan

関連する問題