在2012年4月13号的时候由Linaro组织开了一个会议,以统一各ARM板linux系统发行版的加载程序/lib/ld-linux.so.3的路径及名称,在这前:
Debian/Ubuntu 用的是:/lib/arm-linux-gnueabihf/ld-linux.so.3
Fedora, OpenSUSE用的是:/lib/ld-linux.so.3
这就会造成编译好的程序在不同的linux版本上运行不兼容,因此才会出现:No such file or directory的出错。
这会议之后的统一的加载程序是:/lib/ld-linux-armhf.so.3
使用gcc-linaro-arm-linux-gnueabihf-4.8-2013.10_linux.tar.bz2编译一个最简单的可执行程序。
放到ok335xd开发板上运行出现-sh: ./share_test: No such file or directory错误。
不同于windows上,linux上这样的错误是可执行程序要连接的库无法找到,而根据上面的介绍我们这里需要定位到ld-linux-armhf.so.3。
1)尝试将gcc-linaro-arm-linux-gnueabihf-4.8中的ld-2.18-2013.10.so链接,改名为ld-linux-armhf.so.3,则出现libc.so.6找不到的情况,继续修改添加合适的libc.so.6后则出现系统其他命令无法使用。
2)尝试gcc-linaro-arm-linux-gnueabihf-4.7-2013.04-20130415_linux照上面的操作改为ld-linux-armhf.so.3,可执行程序可以执行,没有错误了,但是没有结果。
3)直接尝试将开发板上原有的ld-2.12.2.so文件改名或者链接为ld-linux-armhf.so.3,则可以正常使用。