2017-04-08 111 views
0

我在VMWare上安裝了Ubuntu。我的目的是在其中構建內核模塊。我是一名初學者。我寫了一個基本模塊。但是我不能用'Makefile'編譯它。我需要解決什麼問題?構建Linux內核模塊的問題

C文件(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 ***中注意到的一件事是,在'make'命令的開頭應該有空格,如 'all: make -C/lib/modules/$(shell uname -r) /建立M = $(PWD)模塊。 –

+1

是否真的太難發佈代碼,你必須訴諸圖像文件?我認爲,當提問者沒有在這個職位上付出很多努力時,就更難提供指導。你發佈的圖片有一天會消失。這篇文章對未來的讀者毫無價值。 – alvits

+0

@vinodmaverick。我嘗試了你建議的方式。它仍然有同樣的問題。 – NoeDan

回答

0

make用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