gpt4 book ai didi

c - Linux 编译 Make 错误 : missing separator

转载 作者:太空宇宙 更新时间:2023-11-04 07:51:22 25 4
gpt4 key购买 nike

我正在尝试使用以下 Makefile 编译我的程序 thread.c:

ifneq ($(KERNELRELEASE),)
obj-m := thread.o
else

KERNELDIR ?= /lib/modules/$(shell uname -r)/build

PWD := $(shell pwd)

default:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
endif

当我运行 make 时出现错误

Makefile:10: *** missing separator. Stop.

我没有找到这个问题的原因,有人可以帮我解决这个问题吗?

最佳答案

规则配方中的每个命令都必须以制表符开头。后面可能会有更多或其他空格,但前导制表符是必不可少的。

您的文件包含目标 default 的规则,但其配方中的单个命令不以制表符(或任何空格,就此而言)开头。结果是第 10 行(假设您已经提供了整个文件),这确实是 make 的诊断所涉及的行号。只需插入选项卡。就个人而言,我还会在 endif 之前添加一个空行,但这是一种风格建议,而不是必需的。即:

ifneq ($(KERNELRELEASE),)

obj-m := thread.o

else

KERNELDIR ?= /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)

default:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules

endif

关于c - Linux 编译 Make 错误 : missing separator,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53633837/

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