免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5223 | 回复: 19
打印 上一主题 下一主题

编译一个文件系统模块报错! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-12-07 19:21 |只看该作者 |倒序浏览
10可用积分
最近从网上下了一个块设备文件系统uxfs
编译后报错:CFLAGS waw changed in "/home/lynnix/Desktop/uxfs/kern/Makefile"
Fix it to use EXTRA_CFLAGS

makefile文件如下:
KERNELDIR = /usr/src/linux-2.4.18-14

include $(KERNELDIR)/.config

FLAGS = -D__KERNEL__ -DEXPORT_SYMTAB -DMODULE $(VERCFLAGS)
GLOBAL_CFLAGS = -g -I$(KERNELDIR)/include $(FLAGS)

M_OBJS = ux_dir.o ux_alloc.o ux_file.o ux_inode.o

M_TARGET = uxfs

SRCS = $(M_OBJS:.o=.c)

CFLAGS = $(GLOBAL_CFLAGS) $(EXTRA_CFLAGS)
$(M_TARGET) : $(M_OBJS)
        ld -r -o $@ $(M_OBJS)

$(M_OBJS) : %.o : %.c
        $(CC) -c $(CFLAGS) -o $@ $<

all: uxfs

clean:
        rm -f $(M_OBJS) $(M_TARGET)

然后我把CFLAGS = $(GLOBAL_CFLAGS) $(EXTRA_CFLAGS)中的CFLAGS换成EXTRA_CFLAGS编译器报错EXTRA_CFLAGS嵌套,这肯定也不行.
然后我随便起了个名字把CFLAGS换成其他名字,make了以后没有报错,但是产生0个modules,连cc都没有执行.
请问对于出现的这种情况makefile应该怎么写啊?
另外问下,include $(KERNELDIR)/.config中的.config是不是内核配置文件?
我看到内核目录里没有这个文件,就从系统/boot下把系统的配置文件拷贝过来的,这样做对么?

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
2 [报告]
发表于 2008-12-07 19:58 |只看该作者
另外问下,include $(KERNELDIR)/.config中的.config是不是内核配置文件


这个是隐藏文件,用ls -a看。

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
3 [报告]
发表于 2008-12-07 20:03 |只看该作者
2.4下我编译内核模块的Makefile比较简单
all:
        gcc -O2 -DMODULE -D__KERNEL__ -W  -Wstrict-prototypes -Wmissing-prototypes -isystem /lib/modules/`uname -r`/build/include -c -o module.o  module.c

clean:
        rm -rf mudle.o

论坛徽章:
0
4 [报告]
发表于 2008-12-07 20:04 |只看该作者

回复 #1 magiceyes 的帖子

源码不完整,检查一下

论坛徽章:
0
5 [报告]
发表于 2008-12-07 20:53 |只看该作者
原帖由 Godbach 于 2008-12-7 19:58 发表


这个是隐藏文件,用ls -a看。

我知道这是隐藏文件,就是在内核目录下用ls -a没有找到,就从/boot拷贝了一个,不知道这种做法对不对.

另外.config的功能是什么?

论坛徽章:
0
6 [报告]
发表于 2008-12-07 20:54 |只看该作者
原帖由 kns1024wh 于 2008-12-7 20:04 发表
源码不完整,检查一下

检查过了,是完整的,CC和CFLAGS都是内建变量,所以没定义啊!

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
7 [报告]
发表于 2008-12-07 20:56 |只看该作者
原帖由 magiceyes 于 2008-12-7 20:53 发表

我知道这是隐藏文件,就是在内核目录下用ls -a没有找到,就从/boot拷贝了一个,不知道这种做法对不对.

另外.config的功能是什么?


LZ可能没有编译过内核吧。这个里面就是保存的内核的配置。哪些模块直接编译的内核,那些作为动态模块加载,哪些功能不编译到内核里。都通过这个文件来确定的。

如果编译过内核,源码目录下会有的。不过如果boot下的那个config文件也就是从编译内核产生的配置文件copy过去的。

论坛徽章:
0
8 [报告]
发表于 2008-12-07 21:07 |只看该作者
原帖由 Godbach 于 2008-12-7 20:56 发表


LZ可能没有编译过内核吧。这个里面就是保存的内核的配置。哪些模块直接编译的内核,那些作为动态模块加载,哪些功能不编译到内核里。都通过这个文件来确定的。

如果编译过内核,源码目录下会有的。不过如 ...


装完系统以后/boot下就有这个文件了!

难道我不能用CFLAGS么,这个源代码是2.4的,我是在2.6内核下编译的,就第一行该为新内核了.
是不是2.4内核和2.6内核对内建变量的处理方法不一样?

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
9 [报告]
发表于 2008-12-07 21:20 |只看该作者
你没有编译过内核的话,你得先确定当前系统是否支持你编译内核模块。必须得有编译过的内核才可以

论坛徽章:
0
10 [报告]
发表于 2008-12-07 21:34 |只看该作者
原帖由 Godbach 于 2008-12-7 21:20 发表
你没有编译过内核的话,你得先确定当前系统是否支持你编译内核模块。必须得有编译过的内核才可以

可以编译模块的,我之前编译别的模块都可以编译成功.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP