LinuxSir.cn,穿越时空的Linuxsir!

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

如何将.C源文件编译成驱动模块?

[复制链接]
发表于 2005-5-24 09:39:13 | 显示全部楼层 |阅读模式
下了一个USB网卡驱动的.C源文件,怎么写makefile文件编译它?

大虾们能不能给点比较实用的资料,指导一下
发表于 2005-5-24 22:26:22 | 显示全部楼层
假设你有usb.c与usb.h,那么Makefile应该如:


  1. SOURCES = usb.c
  2. OBJECTS = usb.o
  3. CC = gcc
  4. CFLAGS = -O2 -Wall

  5. $(OBJECTS) : $(SOURCES) usb.h
  6.         $(CC) $(CFLAGS) $(SOURCES) -o $(OBJECTS) //前边是tab

  7. .PHONY : clean

  8. clean :
  9.         -rm -f $(OBJECTS) //前边是tab
复制代码
回复 支持 反对

使用道具 举报

发表于 2005-5-25 08:53:13 | 显示全部楼层
Post by macarthor
假设你有usb.c与usb.h,那么Makefile应该如:


  1. SOURCES = usb.c
  2. OBJECTS = usb.o
  3. CC = gcc
  4. CFLAGS = -O2 -Wall

  5. $(OBJECTS) : $(SOURCES) usb.h
  6.         $(CC) $(CFLAGS) $(SOURCES) -o $(OBJECTS) //前边是tab

  7. .PHONY : clean

  8. clean :
  9.         -rm -f $(OBJECTS) //前边是tab
复制代码


如果你的.c和.o不是一个,而是多个,那么也可以用
$(CC) $(CFLAGS) $(SOURCES) -o $(OBJECTS)
进行编译吗?
回复 支持 反对

使用道具 举报

发表于 2005-5-25 09:22:22 | 显示全部楼层
Post by Illidan
如果你的.c和.o不是一个,而是多个,那么也可以用
$(CC) $(CFLAGS) $(SOURCES) -o $(OBJECTS)
进行编译吗?

一个个来咯,
也可以先编译成.o
.c.o:
gcc -c $<
再连接,可以简化一点
回复 支持 反对

使用道具 举报

发表于 2005-5-25 10:06:35 | 显示全部楼层
如果是2.6内核。
自己要写makfile
只要包含一行obj-m:=usb.o
然后进入自己的source目录,运行make -C $KDIR M =`pwd` modules
$KDIR用你的内核源代码根目录替换
就会在当前目录下出现usb.ko
然后就可以insmod和rmmod了。
回复 支持 反对

使用道具 举报

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

本版积分规则

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