LinuxSir.cn,穿越时空的Linuxsir!

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

求助 多个源程序组成的模块 怎么编写Makefile

[复制链接]
发表于 2007-9-20 18:57:11 | 显示全部楼层 |阅读模式
2.4内核的系统

1

我有 1.c  1.h
        2.c  2.h
        3.c  3.h
6个文件。
2
   1.c   -主文件 init_module 函数在 该文件中
3
   1.c  包含 2.h  3.h   
4  每个.c  我都写了
#ifndef __KERNEL__
        #define __KERNEL__
#endif
#ifndef MODULE
        #define MODULE
#endif
#include <linux/version.h>
#include <linux/config.h>
#if CONFIG_MODVERSIONS==1
#define MODVERSIONS
#include <linux/modversions.h>
#endif
#include <linux/module.h>
#include <linux/kernel.h>


下面是Makefile

CHOST="i686-pc-linux-gnu"
CC = gcc
CFLAGS=-Wall -march=pentium4 -O3  -D__KERNEL__ -DMODULE
LIBS=-L/usr/lib -lc
# Change include directory for your kernel
MODULE_CFLAGS=-I/usr/src/linux-2.4.22/include  
MODULE_CFLAGS+=$(CFLAGS)
EXECUTE_CFLAGS=-ggdb
EXECUTE_CFLAGS+=$(CFLAGS)

TARGET = 1.ko

%.o: %.c
        $(CC) -c $< -o $@ $(MODULE_CFLAGS)
%.o:%.cpp
        $(CC) -c $< -o $@ $(MODULE_CFLAGS)
SOURCES = $(wildcard *.c *.cpp)
OBJS = $(patsubst %.c,%.o,$(patsubst %.cpp,%.o,$(SOURCES)))
$(TARGET) : $(OBJS)
        $(CC) $(OBJS) -o $(TARGET)

clean:
        rm -rf *.o
        rm -rf $(TARGET)

//---------------------------------------------------------------
[root@QoS spconstat]# make
gcc -c 2.c -o 2.o -I/usr/src/linux-2.4.22/include   -Wall -march=pentium4 -O3  -D__KERNEL__ -DMODULE
gcc -c 1.c -o 1.o -I/usr/src/linux-2.4.22/include   -Wall -march=pentium4 -O3  -D__KERNEL__ -DMODULE
gcc -c 3.c -o 3.o -I/usr/src/linux-2.4.22/include   -Wall -march=pentium4 -O3  -D__KERNEL__ -DMODULE
gcc 2.o 1.o 3.o -o 1.ko  
/usr/lib/gcc-lib/i386-redhat-linux/3.2.2/../../../crt1.o(.text+0x18): In function `_start':
../sysdeps/i386/elf/start.S:77: undefined reference to `main'
2.o(.text+0xea): In function `Myinet_ntoa':
: undefined reference to `sprintf_Rsmp_1d26aa98'
2.o(.text+0x115): In function `GetIPAddtoHash':
: undefined reference to `sprintf_Rsmp_1d26aa98'
1.o(.text+0x11): In function `SP_netlink_thread':
: undefined reference to `printk_Rsmp_1b7d4074'

这都个文件组成的MODULE 该怎么编译
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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