我如何使“make”命令发挥作用?

我如何使“make”命令发挥作用?

我正在尝试“Linux 内核模块编程 - 编译模块”,如下所示Youtube 视频。

首先我创建了一个hello.c程序。然后我使用了命令#gedit Makefile。它在 gedit 中打开了一个空白窗口。

我尝试复制相同的命令,但运行 make 命令

它显示一个错误:

make:*** No rule to make target 'make', needed by 'all'. Stop. 

搜索一些我尝试过的 Ubuntu 表单:

sudo apt-get install build essentials 
sudo apt-get install make
sudo apt-get install autoconf automake

每次我执行此命令时都会安装一些包。

我去登记了:

root@ubuntu: /lib/modules/3.5.0-17-generic/build

输入命令时我可以看到“Makefile” ls,但我仍然遇到同样的问题, make命令仍然无法工作,因为gedit Makefile命令打开了一个空白编辑器。

答案1

正如 Gerhard 所说,这是 makefile 的问题。

在视频中,作者准备了一个makefile,因此您需要将他的说明复制到您自己的make文件中。

我自己尝试了他的说明,并确保准确复制了 Makefile,效果很好,因此,如果您仔细检查文件是否有错误,您有望找到它。这是我的文件,可以正常工作,您可以通过复制它来节省一些时间。

obj-m += hello.o

KDIR=/usr/src/linux-headers-3.5.0-22-generic/

all:
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules

clean:
rm -rf *.ko *.o *.mod.* *.symvers *.order

关于 Makefile 需要注意的一点是,视频中没有提到,在这一部分中

all:
    $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules

$(MAKE)行必须用 TAB 缩进,不是空格。

相关内容