gpt4 book ai didi

c - 设备驱动程序 Hello world 的 make 文件出错

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:23:08 25 4
gpt4 key购买 nike

我有一个带有 make 文件的设备驱动程序 hello world 的简单代码。它在 12.04 LTS 的情况下执行得很好,但最近我将我的 ubuntu 升级到 14.04,此后相同的程序无法编译。在

上显示错误消息
make

make -C /lib/modules/3.13.0-45-generic/build M= modules
make[1]: Entering directory `/usr/src/linux-headers-3.13.0-45-generic'
make[2]: *** No rule to make target `/usr/src/linux-headers-3.13.0-45-generic/arch/x86/syscalls/syscall_32.tbl', needed by `arch/x86/syscalls/../include/generated/uapi/asm/unistd_32.h'. Stop.
make[1]: *** [archheaders] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-3.13.0-45-generic'
make: *** [all] Error 2

提前致谢......

最佳答案

您的 make 文件不适用于其他版本的内核,因为内核库模块将位于/lib/modules/kernelversion/build 中。

所以你应该使用make -C/lib/modules/"应该是当前运行的内核"/build

make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules

这将使用“shell uname -r”自动加载当前运行的内核版本。

示例生成文件

KERNELDIR := /lib/modules/$(shell uname -r)/build
CLEANFILE := *.dis *.o *.ko *.mod.* *.symvers *.*.old
obj-m := hello.o

default:
make -C $(KERNELDIR) M=$(CURDIR) modules

clean:
rm -f $(CLEANFILE)

关于c - 设备驱动程序 Hello world 的 make 文件出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28353795/

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