|
楼主 |
发表于 2006-12-6 00:45:18
|
显示全部楼层
Post by LYOO
- $(CC) -o $@ $^ -msoft-float $(LINK)
复制代码 这里没必要加,在CFLAG里定义就行了。
我遇到过类似情况,我用的是GNUARM提供的开发包,当我从bu-2.16.1_gcc-4.0.2-c-c++_nl-1.14.0_gi-6.4升级到bu-2.17_gcc-4.1.1-c-c++_nl-1.14.0_gi-6.5,原来写的Makefile编译出错:浮点类型不匹配,所以我在Makefile中做了如下修改强制使用软浮点,就行了。- ......
- CFLAGS = [b]-msoft-float[/b] -gdwarf-2 -c -I.\include
- ......
- ASFLAGS = [b]-mno-fpu[/b] -gdwarf2 -I.\boot
- ......
复制代码
多谢LYOO的耐心回复,但是我按照你的方法修改Makefile后,错误依然没有改变。
gdwarf-2 和gdwarf2参数好像在我所使用的arm-linux-gcc中并不支持:- arm-linux-gcc -msoft-float -gdwarf-2 -c -mno-fpu -gdwarf2 prog1.c -o prog1.o
- cc1: Invalid option `no-fpu'
- cc1: warning: `-gdwarf2' not supported by this configuration of GCC
- make: *** [prog1.o] Error 1
复制代码
修改后的makefile:- CC = arm-linux-gcc
- OBJS=object.o prog1.o
- LINK = -L. -lOurLib -lm -lpthread
- CFLAGS = $(MSF) -c
- ASFLAGS = -mno-fpu
- TAR = test
- $(TAR):$(OBJS)
- $(CC) -o $@ $^ $(LINK)
- object.o:some dependencies
- $(CC) $(CFLAGS) $< -o $@
- prog1.o:some dependencies
- $(CC) $(CFLAGS) $< -o $@
复制代码
出错信息依旧:- /usr/local/arm/2.95.3/arm-linux/bin/ld: Error: _fixunsdfsi.o uses hard floating point,
- whereas object(我的程序) uses soft floating point
- File format not recognized: failed to merge target specific data of file
- /usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/libgcc.a(_fixunsdfsi.o)
- /usr/local/arm/2.95.3/arm-linux/bin/ld: Error: _udivsi3.o uses hard floating point,
- whereas object(我的程序) uses soft floating point
- File format not recognized: failed to merge target specific data of file
- /usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/libgcc.a(_udivsi3.o)
- .......
复制代码 |
|