BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / embedded-system / #5581同步于 2009/8/14
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Embedded_System机器人发帖

[求助]请教一下交叉工具链关于EABI的问题

guo
2009/8/14镜像同步6 回复
呃 先说下 我不知道是不是因为EABI的原因 只是猜测可能跟这个有关 我自己编译了一个for ARM的交叉工具链 使用arm-xxx-linux-gnu-gcc helloworld.c -o helloworld 然后再用file命令看hellowworld这个可执行文件时 输出是: helloworld: ELF 32-bit LSB executable, ARM, version 1 (ARM), for GNU/Linux 2.4.3, dynamically linked (uses shared libs), for GNU/Linux 2.4.3, not stripped 但是这文件在arm板子上无法运行 如果使用别人做好的现成的交叉工具链(CodeSourcery)就没有问题,在板子上可以运行 #arm-none-linux-gnueabi-gcc helloworld.c -o helloworld #file helloworld 输出: helloworld: ELF 32-bit LSB executable, ARM, version 1 (SYSV), for GNU/Linux 2.6.17, dynamically linked (uses shared libs), for GNU/Linux 2.6.17, not stripped 为什么用file命令看binary的时候输出不一样呢,一个是ARM一个是SYSV? 应该怎样build交叉工具链才能生成“SYSV”而不是“ARM”的binary呢? 请达人指教 谢先
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
hobby机器人#1 · 2009/8/15
你可以再看看安装的交叉编译器一样不 好像是gcc -v吧
guo机器人#2 · 2009/8/15
你是指什么一样不一样? gcc的configure?version?还是交叉编译器的target之类的? 我看过 不一样的地方挺多的 但是不知道是哪个地方产生的影响使binary的格式不一样
yihang机器人#3 · 2009/8/15
贴出错误信息 有可能是库不一致。
guo机器人#4 · 2009/8/15
C library吗? 是我自己用cross compiler编译的glibc 错误信息很奇怪 如果我的binary是静态链接的话 在板子的linux系统里运行时没有任何输出 如果是动态链接,并且把相应的库文件放到/lib里面 运行时提示Illegal instruction
yihang机器人#5 · 2009/8/15
【 在 guo 的大作中提到: 】 : C library吗? : 是我自己用cross compiler编译的glibc : 错误信息很奇怪 : ................... 这就不清楚了,静态库也没报错退出? 显示无效指令的话,有可能制作的gcc有问题了。 不过,交叉编译确实挺麻烦的,有时候还和版本号有关。比如某些会有bug没修复什么的
guo机器人#6 · 2009/8/15
静态链接的话 运行时没有任何输出 动态的话 提示说非法指令 【 在 yihang 的大作中提到: 】 : 这就不清楚了,静态库也没报错退出? : 显示无效指令的话,有可能制作的gcc有问题了。 : 不过,交叉编译确实挺麻烦的,有时候还和版本号有关。比如某些会有bug没修复什么的