gpt4 book ai didi

makefile - 是否可以将 CFLAGS 设置为 Linux 内核模块 Makefile?

转载 作者:行者123 更新时间:2023-11-30 16:14:48 25 4
gpt4 key购买 nike

例如:通用设备模块的Makefile

obj-m:=jc.o

default:
$(MAKE) -C /lib/modules/$(shell uname -r)/build M=$(shell pwd) modules
clean:
$(MAKE) -C /lib/modules/$(shell uname -r)/build M=$(shell pwd) modules clean

我考虑是否可以将 CFLAGS 设置为该文件。当我将默认部分更改为

$(MAKE) -O2 -C /lib/modules/$(shell uname -r)/build M=$(shell pwd) modules

但是没有成功。

有什么帮助吗?非常感谢。

最佳答案

-O2 将是您尝试过的 make (或 $(MAKE),当您使用它时)的选项。显然,编译器(可能是 gcc)需要这个标志,而不是 make

Kbuild 理解名为 CFLAGS_modulename.o 的 make 变量,以便在编译此单元时添加特定的 cflags。在您的情况下,您的模块对象将为 jc.o,因此您可以指定:

CFLAGS_jc.o := -O2

它应该可以工作。将 V=1 添加到您的 $(MAKE) 行以获得详细输出,当 jc.c 时您应该看到 -O2 正在编译。

您可以在the official documentation中找到有关编译模块的更多信息。 .

关于makefile - 是否可以将 CFLAGS 设置为 Linux 内核模块 Makefile?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57408283/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com