【发布时间】:2025-12-05 03:30:02
【问题描述】:
好的,我正在尝试编译一个简单的内核模块,当我指向以下包含包含的任何内容时,它会抱怨各种东西。
linux-headers-2.6.31-21 linux-headers-2.6.31-22
linux-headers-2.6.31-21-generic linux-headers-2.6.31-22-generic
linux-headers-2.6.31-21-generic-pae linux-headers-2.6.31-22-generic-pae
我正在尝试按照以下网站上的说明进行操作: http://www.faqs.org/docs/kernel/x145.html
我将 make 文件更新为如下所示:
TARGET := hello_world
WARN := -W -Wall -Wstrict-prototypes -Wmissing-prototypes
INCLUDE := -isystem /usr/src/linux-headers-2.6.31-22-generic/include
CFLAGS := -O2 -DMODULE -D__KERNEL__ ${WARN} ${INCLUDE}
CC := gcc
${TARGET}.o: ${TARGET}.c
.PHONY: clean
clean:
rm -rf ${TARGET}.o
例如,当我输入 make 时,我收到以下错误以及更多错误,调查文件夹我发现处理器和缓存文件在 asm-generic 中,如果是,我应该如何编译它没有指向文件的正确位置?
/usr/src/linux-headers-2.6.31-22-generic/include/linux/prefetch.h:14:27: error: asm/processor.h: No such file or directory
/usr/src/linux-headers-2.6.31-22-generic/include/linux/prefetch.h:15:23: error: asm/cache.h: No such file or directory
最终目标(可怕)是在星期四之前构建一个虚拟文件系统......(是的,我知道这不太可能) 我了解一些 make 文件,但奇怪的是,我希望我应该看到类似 ${CC} ${INCLUDE} 之类的东西,但我根本没有看到,
有人可以解释和/所有以下问题吗?
我需要将我的包含更新到什么以便它知道正确的目录(如果它类似于我正在使用的内核等,请解释我如何解决这个问题)。
谁能解释一下makefile 是如何知道调用gcc 和编译的?
还有什么我需要知道才能编译这个东西吗?
-- 奖金问题
- 任何人都知道任何关于如何构建 VFS 的非常详细的教程,我有一个项目分配给我们,另一所学校做了,http://oslab.info/index.php/Labs/HW4,基于我们之前完成的有限编程,它似乎是一项艰巨的任务。
【问题讨论】:
标签: c module linux-kernel