CubieBoard中文论坛

 找回密码
 立即注册
搜索
热搜: unable
查看: 9784|回复: 6

动态链接的程序无法在ARM板上执行

[复制链接]
发表于 2013-3-25 17:59:16 | 显示全部楼层 |阅读模式
我在Ubuntu上安装了arm-linux-gnueabi-gcc
并用C写了一个简单的helloworld程序
#include <stdio.h>
int main(void)
{
   printf("hello world\n");
   return 0;
}
保存为 hello.c
使用静态链接编译(arm-linux-gnueabi-gcc -static hello.c)产生的程序放到ARM板子上(linux mele 3.0.42)能正常运行
使用动态链接编译(arm-linux-gnueabi-gcchello.c)产生的程序不能执行
同样是用putty的pscp把程序传到目标板,动态链接的程序传到目标板上时不具有可执行属性
我尝试执行
chmod +x a.out
./a.out
结果显示
bash: ./a.out: No such file or directory

回复

使用道具 举报

发表于 2013-3-25 18:28:51 | 显示全部楼层
cubieboard上的ubuntu是arm hf的,交叉编译的话,使用 arm-linux-gnueabihf-gcc

主机上 使用 sudo apt-get install gcc-arm-linux-gnueabihf 安装

不建议给cubieboard交叉编译,因为cubieboard一旦安装了系统,它就是一个独立的计算机,可以直接在cubieboard上本地编译程序。
回复 支持 反对

使用道具 举报

发表于 2013-3-26 09:19:14 | 显示全部楼层
to TUSSON:
动态编译不通过,说明bin文件所需的链接板子上的库里没有。

to hlpbol:
能说说这2个 编译器的差异吗,在何种情况下使用?
回复 支持 反对

使用道具 举报

发表于 2013-3-26 11:17:14 | 显示全部楼层
Henry_Wu001 发表于 2013-3-26 09:19
to TUSSON:
动态编译不通过,说明bin文件所需的链接板子上的库里没有。

请使用“回复”功能,并且id是hipboi,不是hlpbol

这个两个编译器的差异在于armhf是硬件浮点,对于浮点运算是使用vfp来传递参数,原来的是用arm寄存器传递参数。armhf在一些浮点运算大的程序上甚至能获得200%的性能提升。可以参考:

http://wiki.debian.org/ArmHardFloatPort
回复 支持 反对

使用道具 举报

发表于 2013-6-20 14:51:11 | 显示全部楼层
hipboi 发表于 2013-3-25 18:28
cubieboard上的ubuntu是arm hf的,交叉编译的话,使用 arm-linux-gnueabihf-gcc

主机上 使用 sudo apt-get ...

如果纯粹折腾玩玩的话直接板子上搞没啥问题,现在想用来做点开发,直接在板子上效率还是很低的。
回复 支持 反对

使用道具 举报

发表于 2013-6-30 17:18:05 | 显示全部楼层
想问下楼主是怎么解决的?我也遇到同样的问题,而且我看lib里动态链接库都有。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-6-30 21:37:04 | 显示全部楼层
sun_richard 发表于 2013-6-30 17:18
想问下楼主是怎么解决的?我也遇到同样的问题,而且我看lib里动态链接库都有。 ...

主机上换成gcc-arm-linux-gnueabihf
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|粤ICP备13051116号|cubie.cc---深刻的嵌入式技术讨论社区

GMT+8, 2024-11-22 18:26 , Processed in 0.023513 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2012 Comsenz Inc. | Style by Coxxs

返回顶部