|
我家台式机装的是内置lucent winmodem.用rpm包装,没有问题工作正常。但是我用源码就是make不过去最后会出现如下的编译信息:
serial.c:3172: dereferencing pointer to incomplete type
serial.c: In function `cleanup_module':
serial.c:3284: `timer_active' undeclared (first use in this function)
serial.c:3284: `RS_TIMER' undeclared (first use in this function)
serial.c:3285: `timer_table' undeclared (first use in this function)
serial.c:3298: sizeof applied to an incomplete type
serial.c:3298: sizeof applied to an incomplete type
serial.c:3299: invalid use of undefined type `struct serial_state'
serial.c:3301: invalid use of undefined type `struct serial_state'
serial.c: At top level:
serial.c:250: size of variable `serial_table' is too large
serial.c:251: size of variable `serial_termios' is too large
serial.c:252: size of variable `serial_termios_locked' is too large
make: *** [serial.a] Error 1
[root@LinuxMini ltmodem-5.78c]#
Make文件如下:
SYSTEM = /usr/src/linux/
KCFLAGS = -D__KERNEL__ -I$(SYSTEM)include \
-Wall -Wstrict-prototypes -O2 \
-fomit-frame-pointer -fno-strict-aliasing -pipe \
-fno-strength-reduce -m486 -malign-loops=2 \
-malign-jumps=2 -malign-functions=2 -DCPU=586 \
-DMODULE -DMODVERSIONS \
-include $(SYSTEM)include/linux/modversions.h
#CC=gcc -D__KERNEL__ -DMODULE -w -O2 -fomit-frame-pointer
CC=gcc -D__KERNEL__ -DMODULE -w -O2 -fomit-frame-pointer -I$(SYSTEM)include
#CC = gcc $(KCFLAGS) -c
LINUXOBJS := \
serial.a \
ltmodem.a
all: $(LINUXOBJS) ltmodem.o
ltmodem.o: $(LINUXOBJS) ltmdmobj.a
ld -r -o ltmodem.o $(LINUXOBJS) ltmdmobj.a
ltmdmobj.a: ltmdmobj.o
objcopy --redefine-sym=rs_interrupt_single=rs_interrupt_lucent $< $@
%.a: %.c
$(CC) -c -o $@ $<
clean:
rm -f *.a
rm -f *~
rm -f ltmodem.o
install:
make all
./ltinst2
那个System.路径都没有问题,哪位大虾帮帮我啊,帮我分析一下 |
|