1. 我的Makefile如下
#设置为您的内核树
内核= / home / linux
#获取Linux体系结构. 需要找到适合CFLAGS的包含文件
ARCH = $(shell uname -m | sed -e s / i.86 / i386 / -e s / sun4u / sparc64 / -e s / arm. * / arm / -e s / sa110 / arm /)
#设置默认标志以编译模块
CFLAGS = -D__KERNEL__ -DMODULE -I $(KERNEL)/ include
CFLAGS + = -Wall -Wstrict原型-O2 -fomit-frame-pointer -fno-strict-aliasing
全部: sharelist.o
#获取内核配置
包括$(内核)/. 配置
#使用特定于体系结构的标志修改CFLAGS
包括$(内核)/ arch / $ {ARCH} / Makefile
#如果在内核源代码树中配置,则启用模块版本
ifdef CONFIG_MODVERSIONS
CFLAGS + = -DMODVERSIONS -include $(KERNEL)/include/linux/modversions.h
endif
#如果在内核源代码树中配置,则启用SMP
ifdef CONFIG_SMP
CFLAGS + = -D__SMP __
endif
#注意: 我们正在编译驱动程序目标文件,然后进行链接
#我们将其链接到模块中. 仅使用一个目标文件
#此示例不需要. 我们可以加载对象
gcc制作的#个文件
#链接线程驱动程序模块
sharelist.o: sharelist.c
gcc $(CFLAGS)-c sharelist.c
干净:
rm -f * .o
#使用特定于体系结构的标志修改CFLAGS
包括$(内核)/ arch / $ {ARCH} / Makefile
2. sharelist.c文件已写入
3.
我最初的理解是: 将arch / $ {ARCH} / Makefile和.config文件存储在/ home / linux下,而linux文件夹只是一个用户文件夹config是什么文件夹,可以根据您的定义进行更改. ,例如config是什么文件夹,我的计算机是/ home / chen,该计算机将arch / $ {ARCH} / Makefile文件和.config文件存储在chen文件夹中,然后将Makefile开头的代码更改为KERNEL = / home / chen,我不知道我是否理解正确
问题: 每次输入make时,都会显示找不到arch / $ {ARCH} / Makefile和.config,但是当我在LINUX中搜索.config时,我根本找不到它,只有* .config形式的文件至于arch / $ {ARCH} / Makefile,由于上面ARCH的定义很复杂,令我更加困惑. 我刚刚与LINUX保持联系,希望高手可以帮助我解决以上问题
电子邮件:
QQ: 416508484
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shouji/article-163592-1.html