Linux カーネルの開発を始めたばかりで、make ファイルのコンパイルに問題があります。
hello worldのチュートリアルです。
私の 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");
}
私のメイクファイル
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/Documents/HelloWorld にあります
make コマンドを実行すると、以下の出力が得られます。
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
根本的な原因が何であるかを知ることができる体はありますか? 私はそれが非常に単純であることを知っていますが、それでも私はこれから出てくることができませんか?
ありがとう