当前位置: 技术问答>linux和unix
ARM板子跑linux2.6,可执行文件无法执行
来源: 互联网 发布时间:2017-05-16
本文导语: 问题是这样的,我在PC机虚拟机的Ubuntu,交叉编译器已装好,使用命令arm-linux-gcc -o xxx1 xxx1.c生成xxx1可执行文件,然后对xxx2.c执行同样的操作,可奇怪的是在板子上执行./xxx1可正确执行,但是执行./xxx2时却打印错误...
问题是这样的,我在PC机虚拟机的Ubuntu,交叉编译器已装好,使用命令arm-linux-gcc -o xxx1 xxx1.c生成xxx1可执行文件,然后对xxx2.c执行同样的操作,可奇怪的是在板子上执行./xxx1可正确执行,但是执行./xxx2时却打印错误信息:-sh: ./xxx2: No such file or directory。xxx1,xxx2都是在当前目录下,使用ls -l命令-rwxr-xr-x 1 root root 12741 2014-04-04 00:48 xxx,显示都是一样的,并没有可执行权限的问题。另外使用arm-linux-readelf -h xxx1,查看两个xxx可执行文件,并没有不同的地方。请问这到底是什么问题吗?第一次遇到这么奇怪的问题。
|
确保编译工具一致,依赖的库文件板子上是不是都有!
|
用file命令看下可执行程序是ARM还是Intel 80386。
|
1)可以用 -static编译下你的程序 看看能不能执行
2)还有确定你的编译器版本和你编译内核的版本是否一致
2)还有确定你的编译器版本和你编译内核的版本是否一致