LinuxSir.cn,穿越时空的Linuxsir!

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

关于arm-elf-tools和arm-linux-toolchain的区别

[复制链接]
发表于 2006-7-31 19:40:55 | 显示全部楼层 |阅读模式
我在应用的一个程序
在readme中介绍可以用arm-linux-toolchain来编译
在arm中运行
而我想把这个程序移植到uclinux
在uclinux中用的是arm-elf-tools
我试图用arm-elf-tools对源程序进行编译
但出现了错误
我不清楚错误是否是因为用了不同交叉编译工具导致的
想请大家帮忙看一下
我是一个新手
不太清楚在不同的交叉编译工具是否可以完成
如果不可以的话,那么移植的工作应该怎样进行呢
谢谢!

下边是编译最后一段的信息:

arm-elf-gcc -Wall -O3 -g -DDEBUG -DCONFIG_GATEWAY -DARM  -c -o libipq-arm.o libipq.c
arm-elf-gcc -Wall -O3 -g -DDEBUG -DCONFIG_GATEWAY -DARM  -c -o icmp-arm.o icmp.carm-elf-gcc -Wall -O3 -g -DDEBUG -DCONFIG_GATEWAY -DARM  -c -o min_ipenc-arm.o min_ipenc.c
arm-elf-gcc -Wall -O3 -g -DDEBUG -DCONFIG_GATEWAY -DARM  -c -o locality-arm.o locality.c
arm-elf-gcc -Wall -O3 -g -DDEBUG -DCONFIG_GATEWAY -DARM -o aodvd main-arm.o list-arm.o debug-arm.o timer_queue-arm.o aodv_socket-arm.o aodv_hello-arm.o aodv_neighbor-arm.o aodv_timeout-arm.o routing_table-arm.o seek_list-arm.o k_route-arm.o aodv_rreq-arm.o aodv_rrep-arm.o aodv_rerr-arm.o packet_input-arm.o packet_queue-arm.o libipq-arm.o icmp-arm.o min_ipenc-arm.o locality-arm.o
/usr/local/lib/gcc-lib/arm-elf/2.95.3/libgcc.a(__main.o)(.text+0xc4): In function `__do_global_ctors':
: undefined reference to `__CTOR_LIST__'
/usr/local/lib/gcc-lib/arm-elf/2.95.3/libgcc.a(__main.o)(.data+0x0): undefined reference to `__DTOR_LIST__'
collect2: ld returned 1 exit status
make: *** [aodvd-arm] 错误 1
发表于 2006-8-7 10:53:01 | 显示全部楼层
/usr/local/lib/gcc-lib/arm-elf/2.95.3/libgcc.a(__main.o)(.text+0xc4): In function `__do_global_ctors':
: undefined reference to `__CTOR_LIST__'
/usr/local/lib/gcc-lib/arm-elf/2.95.3/libgcc.a(__main.o)(.data+0x0): undefined reference to `__DTOR_LIST__'
collect2: ld returned 1 exit status
make: *** [aodvd-arm] 错误 1

这不是编译器的问题,是源代码的问题,
检查一下__CTOR_LIST__和__DTOR_LIST__有没有在头文件里定义.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-8-7 18:36:38 | 显示全部楼层
查了些资料
问题解决了
在makefile中添加了-elf2flt
源程序在linux下是可以运行的
接下来出现了新的error
非常感谢您的回复

/lib/modules/2.6.17.6/build/include/asm/semaphore.h:105: parse error before `KBUILD_BASENAME'
kaodv.c:199: parse error before string constant

/lib/modules/2.6.17.6/build/include/net/request_sock.h:198: warning: `always_inline' attribute directive ignored
/lib/modules/2.6.17.6/build/include/net/request_sock.h:211: warning: `always_inline' attribute directive ignored
/lib/modules/2.6.17.6/build/include/net/request_sock.h:221: warning: `always_inline' attribute directive ignored
/lib/modules/2.6.17.6/build/include/net/request_sock.h:231: warning: `always_inline' attribute directive ignored
/lib/modules/2.6.17.6/build/include/net/request_sock.h:236: warning: `always_inline' attribute directive ignored
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-8-7 18:36:52 | 显示全部楼层
查了些资料
问题解决了
在makefile中添加了-elf2flt
源程序在linux下是可以运行的
接下来出现了新的error
非常感谢您的回复

/lib/modules/2.6.17.6/build/include/asm/semaphore.h:105: parse error before `KBUILD_BASENAME'
kaodv.c:199: parse error before string constant

/lib/modules/2.6.17.6/build/include/net/request_sock.h:198: warning: `always_inline' attribute directive ignored
/lib/modules/2.6.17.6/build/include/net/request_sock.h:211: warning: `always_inline' attribute directive ignored
/lib/modules/2.6.17.6/build/include/net/request_sock.h:221: warning: `always_inline' attribute directive ignored
/lib/modules/2.6.17.6/build/include/net/request_sock.h:231: warning: `always_inline' attribute directive ignored
/lib/modules/2.6.17.6/build/include/net/request_sock.h:236: warning: `always_inline' attribute directive ignored
回复 支持 反对

使用道具 举报

发表于 2006-8-8 08:58:07 | 显示全部楼层
我下载了ppp-2.3.4,试了一下,可以成功编译,不过编译前要执行两条命令

export CC=arm-elf-gcc
export LD=arm-elf-gcc -Wl -elf2flt
回复 支持 反对

使用道具 举报

发表于 2006-8-9 18:45:37 | 显示全部楼层
arm-elf-tools -v,让我看看结果。
回复 支持 反对

使用道具 举报

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

本版积分规则

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