我剛剛開始使用Linux內核開發,並且遇到了編譯make文件的問題。爲linux內核編譯make文件時出現問題?
這是hello世界的教程。
我的HELLO-1.C文件
*
* hello−1.c − The simplest kernel module.
*/
#include <linux/module.h>
/* Needed by all modules */
#include <linux/kernel.h>
/* Needed for KERN_INFO */
int init_module(void)
{
printk(KERN_INFO "Hello world 1.\n");
/*
* A non 0 return means init_module failed; module can't be loaded.
*/
return 0;
}
void cleanup_module(void)
{
printk(KERN_INFO "Goodbye world 1.\n");
}
我的Makefile
obj−m += hello−1.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
無論這個文件是在文件夾中的/ home/KKR /文檔/ HelloWorld的
當我運行使命令我得到下面的輸出。
uname: extra operand `−r'
Try `uname --help' for more information.
make −C /lib/modules//build M=/home/kkr/Documents/HelloWorld modules
make[1]: Entering directory `/home/kkr/Documents/HelloWorld'
make[1]: *** No rule to make target `−C'. Stop.
make[1]: Leaving directory `/home/kkr/Documents/HelloWorld'
make: *** [all] Error 2
任何人都可以有任何想法是什麼根源?我知道這很簡單,但我不能從這裏出來嗎?
感謝
這真的是你的'Makefile'的格式嗎?如果是,則格式不正確。命令應該在具有目標和依賴關係的行之後縮進。 – lurker
@mbratch不,它不是。其實發布問題時,我做了CTRL + K可能是刪除標籤。我再次編輯了這個問題。 – user2510115