交叉编译程序运行出现“No such file or directory”解决-Beaglebone

玩嵌入式开发,一般都要和交叉编译打交道。今天有个朋友编译的时候遇到放到开发板运行的时候出现:No such file or directory。联系到我之前在搭建基于树莓派qt的交叉编译版本时遇到的问题,发现这个问题还是很有趣的,那个朋友的板子是beaglebone black.

        个人原创,版权所有,转载请注明原文出处,并保留原文链接:

http://www.embbnux.com/2014/04/09/cross_compile_no_such_file_or_directory

对于这个问题,首先联想到的事gcc的版本,arm开发板的gcc一般是arm-linux-gcc,但是这个系列的gcc还是有很多版本的,看了下板子上的gcc和电脑上交叉编译的版本同时gcc-4.7.3.

再想了一下,它用的是beaglebone black板子,基于armv7建构,说深一点应该是armv7hf,多了个hf是因为该芯片支持硬件浮点数运算,这可是个好东西啊。 对于gcc也是有对hf进行优化的,也就是带hf的gcc编译器:arm-linux-gnueabihf-gcc

看了一下果然是这个问题,那位朋友在beaglebong运行的文件系统上的gcc是arm-angstrom-linux-gnueabi,而交叉编译环境下的gcc却是:arm-linux-gnueabihf-gcc,所以放到板子上运行时直接是不能解释该文件。

解决方法是把程序放到板子上进行编译,这样就没有这个问题了。

树莓派的交叉编译器也是同样有hf和不到hf区别,记得要一样。

《交叉编译程序运行出现“No such file or directory”解决-Beaglebone》有2个想法

  1. 我也碰到了这个问题,不过是在zynq020上,我用的linux下的交叉编译工具比较旧,制作操作系统需要的启动文件如 U-BOOT uimage devicetree等都是下载的最新的源码 ;
    最后发现在vivado sdk下生成的文件可以被执行 ;用linux下的交叉编译工具编译的文件会执行不了 ;
    报的也是如上的错误;因为zynq暂时还支持不了将交叉编译工具直接放到板子上 ; 不知道有没有什么其他的方法来解决这个问题呢 ;是不是必须要升级linux下的交叉编译工具呢?

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Time limit is exhausted. Please reload the CAPTCHA.