打印
[嵌入式linux]

利用arm-elf-gcc对gaohead webserver编译问题

[复制链接]
2197|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
sgy618|  楼主 | 2009-6-2 14:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
下载了gahead webs218,编译器是arm-elf-gcc,目标版是周立功ARM7TDMI,跑uclinux。
对代码进行如下修改
1.将main.c中的fork改为vfork。
2.在LINUX的Makefile的顶部加入代码
CROSS_COMPILE        = arm-elf-
AS               = $(CROSS_COMPILE)as
LD               = $(CROSS_COMPILE)ld
CC               = $(CROSS_COMPILE)gcc
CPP              = $(CC) -E
AR               = $(CROSS_COMPILE)ar
NM               = $(CROSS_COMPILE)nm
STRIP             = $(CROSS_COMPILE)strip
OBJCOPY          = $(CROSS_COMPILE)objcopy
OBJDUMP          = $(CROSS_COMPILE)objdump
再次执行make clean和make后,总是得到错误:
/usr/local/arm-elf/bin/ld.real: main.o: Relocations in generic ELF (EM: 3)
main.o: could not read symbols: 文件格式错误
collect2: ld returned 1 exit status
make: *** [webs] 错误 1
请问哪位大侠遇到过类似的情形,指点一下,小弟将不胜感激!再次提前谢过!

相关帖子

沙发
sgy618|  楼主 | 2009-6-2 15:19 | 只看该作者

利用arm-elf-gcc对gaohead webserver编译问题

自己顶一下
那个问题搞定了,原因是Makefile前面声明了CC变量,可是后来编译的cc应该改成$(CC),我落掉了(比较粗心)

Makefile中间的一些代码也进行了一些改变
#CFLAGS    = -DWEBS -DUEMF -DOS="LINUX" -DLINUX $(UMSW) $(DASW) $(SSLSW) $(IFMODSW)
CFLAGS = -DWEBS -DUEMF -DOS="LINUX" -DLINUX $(UMSW) $(DASW) $(SSLSW) $(IFMODSW) -D__NO_PACK -Wall -O2
OTHERS    = -DB_STATS -DB_FILL -DDEBUG
DEBUG    = -g -Wall
IFLAGS     = -I.. 
LDFLAGS    = $(SSLLIB) $(IFMODLIB) -Wl,-elf2flt

-D__NO_PACK 的意思是屏蔽Goahead编译是产生的#program 警告,不加这个宏也没关系。
-Wl,-elf2flt:-elf2flt,这个参数的意思就是把源文件编译成扁平格式的可执行文件
CFLAGS 添加 -Wall -O2选项。(优化代码size与速度)

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

2

帖子

0

粉丝