Ech*_*nSS 5 linux kernel makefile build kernel-module
我正在尝试针对文件系统上的任何源树编译模块,但是我遇到了Makefile的问题.这是我对内核指定的原始Makefile:
obj-m += new-mod.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
Run Code Online (Sandbox Code Playgroud)
这个Makefile可以正确编译,但目标是让它针对任何源树进行编译.我试过了:
obj-m += new-mod.o
Run Code Online (Sandbox Code Playgroud)
我认为"全部:"是假设但我得到错误:
make: *** No targets. Stop.
Run Code Online (Sandbox Code Playgroud)
我还补充说:
all:
Run Code Online (Sandbox Code Playgroud)
到Makefile没有区别,除了错误消息:
make: Nothing to be done for `all'
Run Code Online (Sandbox Code Playgroud)
我尝试了很多文档,但没有运气.我非常感谢任何帮助.
goal is to have it compile against any source tree
你可以提供一个 compiled source-code path
只是替换 make -C /lib/modules/$(shell uname -r)/build M=$PWD modules
有了这个
make -C <path-to-compiled-src-code> M=$PWD modules
make -C /home/vinay/linux-3.9 M=$PWD modules
尝试下面的makefile
Makefile -
# if KERNELRELEASE is defined, we've been invoked from the
# kernel build system and can use its language.
ifneq (${KERNELRELEASE},)
obj-m := new-mod.o
# Otherwise we were called directly from the command line.
# Invoke the kernel build system.
else
KERNEL_SOURCE := /usr/src/linux
PWD := $(shell pwd)
default:
${MAKE} -C ${KERNEL_SOURCE} SUBDIRS=${PWD} modules
clean:
${MAKE} -C ${KERNEL_SOURCE} SUBDIRS=${PWD} clean
endif
Run Code Online (Sandbox Code Playgroud)
在上面你可以改变KERNEL_SOURCE := /usr/src/linux
- >到.-->你的sr-codeKERNEL_SOURCE := <path to compiled-src-code>
有关更多信息,请在下面找到
归档时间: |
|
查看次数: |
10200 次 |
最近记录: |