LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1505|回复: 3

在2.6.9内核下设备驱动采用Makefile方式和gcc方式编译生成文件为何不同?

[复制链接]
发表于 2008-4-22 23:24:33 | 显示全部楼层 |阅读模式
1.Makefile方式。
obj-m:=hello.o
default:
        make -C /lib/modules/`uname -r`/build M=`pwd`
2.gcc方式。
CC=gcc
MODCFLAGS := -O -Wall -DMODULE -D__KERNEL__ \
        -I /lib/modules/2.6.9-1.667/build/include
hello.o:hello.c hello.h
        ${CC} ${MODCFLAGS} -c hello.c

只有Makefile生成的hello.ko可执行,gcc生成的hello.o不能执行?请知道的同学指教。
发表于 2008-4-23 01:47:04 | 显示全部楼层
make 也是调用gcc的
参数不同
你编译出来的hello.o 还没有连接呢怎么执行
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-24 00:08:45 | 显示全部楼层
我使用 ld -M hello.o来链接,但还是没有生成hello.ko文件。

请兄弟指出问题。
回复 支持 反对

使用道具 举报

发表于 2008-4-24 12:26:14 | 显示全部楼层
先用 (1) 的方法编译一遍, 然后 ls -a 会显示出许多 .cmd 的文件, 它们标示了每一个目标都是如何编译出来的
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表