如何编写makefile我的一个简单的linux内核模块,包含了,init.h,module.h,sched.h,现要编译,makefile怎么都通不过,1.请问这个makefile怎么写?2.以及如果用gcc编译的话应该如何写?答案如果试了下可行的话追
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/23 19:20:19
![如何编写makefile我的一个简单的linux内核模块,包含了,init.h,module.h,sched.h,现要编译,makefile怎么都通不过,1.请问这个makefile怎么写?2.以及如果用gcc编译的话应该如何写?答案如果试了下可行的话追](/uploads/image/z/6179055-15-5.jpg?t=%E5%A6%82%E4%BD%95%E7%BC%96%E5%86%99makefile%E6%88%91%E7%9A%84%E4%B8%80%E4%B8%AA%E7%AE%80%E5%8D%95%E7%9A%84linux%E5%86%85%E6%A0%B8%E6%A8%A1%E5%9D%97%2C%E5%8C%85%E5%90%AB%E4%BA%86%2Cinit.h%2Cmodule.h%2Csched.h%2C%E7%8E%B0%E8%A6%81%E7%BC%96%E8%AF%91%2Cmakefile%E6%80%8E%E4%B9%88%E9%83%BD%E9%80%9A%E4%B8%8D%E8%BF%87%2C1.%E8%AF%B7%E9%97%AE%E8%BF%99%E4%B8%AAmakefile%E6%80%8E%E4%B9%88%E5%86%99%3F2.%E4%BB%A5%E5%8F%8A%E5%A6%82%E6%9E%9C%E7%94%A8gcc%E7%BC%96%E8%AF%91%E7%9A%84%E8%AF%9D%E5%BA%94%E8%AF%A5%E5%A6%82%E4%BD%95%E5%86%99%3F%E7%AD%94%E6%A1%88%E5%A6%82%E6%9E%9C%E8%AF%95%E4%BA%86%E4%B8%8B%E5%8F%AF%E8%A1%8C%E7%9A%84%E8%AF%9D%E8%BF%BD)
如何编写makefile我的一个简单的linux内核模块,包含了,init.h,module.h,sched.h,现要编译,makefile怎么都通不过,1.请问这个makefile怎么写?2.以及如果用gcc编译的话应该如何写?答案如果试了下可行的话追
如何编写makefile
我的一个简单的linux内核模块,包含了,init.h,module.h,sched.h,现要编译,makefile怎么都通不过,
1.请问这个makefile怎么写?
2.以及如果用gcc编译的话应该如何写?
答案如果试了下可行的话追加分哦~
是这样包含的:
#include
#include
#include
如何编写makefile我的一个简单的linux内核模块,包含了,init.h,module.h,sched.h,现要编译,makefile怎么都通不过,1.请问这个makefile怎么写?2.以及如果用gcc编译的话应该如何写?答案如果试了下可行的话追
1 # To build modules outside of the kernel tree,we run "make"
2 # in the kernel source tree; the Makefile these then includes this
3 # Makefile once again.
4 # This conditional selects whether we are being included from the
5 # kernel Makefile or not.
6 ifeq ($(KERNELRELEASE),)
7
8 # Assume the source tree is where the running kernel was built
9 # You should set KERNELDIR in the environment if it's elsewhere
10 KERNELDIR = /lib/modules/$(shell uname -r)/build
11 # The current directory is passed to sub-makes as argument
12 PWD := $(shell pwd)
13
14 modules:
15 $(MAKE) -C $(KERNELDIR) M=$(PWD) modules
16
17 modules_install:
18 $(MAKE) -C $(KERNELDIR) M=$(PWD) modules_install
19
20 clean:
21 rm -rf *.o core .depend .*.cmd *.ko *.mod.c .tmp_versions
22
23 .PHONY:modules modules_install clean
24
25 else
26 # called from kernel build system:just declare what our modules are
27 obj-m := hello.o
28 endif
在lwn上可以找到这个例子,你可以把以上两个文件放在你的某个目录下,然后执行make,也许你不一定能成功,因为linux kernel 2.6要求你编译模块之前,必须先在内核源代码目录下执行make,换言之,你必须先配置过内核,执行过make,然后才能make你自己的模块.原因我就不细说了,你按着她要求的这么去做就行了.
另外注意命令前面必须是tab
什么是命令?
类似于这种
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules