首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何指定用Makefile编译两个内核模块中的哪个?

如何指定用Makefile编译两个内核模块中的哪个?
EN

Stack Overflow用户
提问于 2020-05-06 16:47:39
回答 1查看 285关注 0票数 1

我有一个Makefile,它编译两个Linux内核模块(mod1.cmod2.c)。

代码语言:javascript
运行
复制
obj-m = mod1.o mod2.o
KDIR=/lib/modules/$(shell uname -r)/build/
PWD=$(shell pwd)

# build the modules
default:
    $(MAKE) -C $(KDIR) M=$(PWD) modules

#cleanup
clean:
    rm -rf *.ko *.o *.mod* .*.cmd modules.order Module.symvers .tmp_versions

当我运行make时,这可以很好地构建两个内核模块,但是我希望能够指定构建哪个模块。例如,make mod1编译mod1.cmake mod2编译mod2.c

我不确定的是如何处理obj-m。否则,指定要编译is well described online的程序。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-06 18:07:19

内核使用变量设置内核模块:

代码语言:javascript
运行
复制
CROSS_COMPILE ?= /path/to/compiler/arm-linux-gnueabihf-
T1      ?= n
T2      ?= n

obj-$(T1) += test1.o
obj-$(T2) += test2.o
LINUX_SOURCE_DIR=/path/to/linux


all:
        $(MAKE) -C $(LINUX_SOURCE_DIR) M=$(PWD) modules ARCH=arm

test1:
        $(MAKE) T1=m

test2:
        $(MAKE) T2=m

clean:
        rm *o modules.order Module.symvers *mod.c

您可以将其用作make T1=mmake test2

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61640644

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档