ld-linux-armhf.so.3 error reading问题解决方案
最近在板子上调试程序遇到一个问题,通过串口下载的程序在搭建好的板子环境上无法运行。gdb调试指令失效,程序无法运行。改用file指令查看,提示我如下错误:interprter /lib/ld-linux-armhf.so.3 error reading(Invalid argument)标题换用readelf指令查看二进制文件信息,错误如下:标题经此确认,问题为...
最近在板子上调试程序遇到一个问题,通过串口下载的程序在搭建好的板子环境上无法运行。
gdb调试指令失效,程序无法运行。改用file指令查看,提示我如下错误:
interprter /lib/ld-linux-armhf.so.3 error reading(Invalid argument)
换用readelf指令查看二进制文件信息,错误如下:
经此确认,问题为 此程序运行需要ld-linux-armhf.so.3动态库。在网上查找解决方案。解决方案如下:
在/etc/profile文件中添加:
export LD_LIBRARY_PATH=/lib:$LD_LIBRARY_PATH
在/lib目录下执行以下语句
ln -s ld-2.21.so ld-linux-armhf.so.3
解决方案的分歧从这开始,正常的执行结果应该是运行成功,然后二进制文件执行成功。
但是在我的电脑上,出现了以下错误:
ln : failedto create symbolic link 'ld-linux-armhf.so.3': File exists
经过查找,该文件确实存在,但是二进制文件依然无法执行。
重新尝试N多次之后,放弃,程序依然无法执行
后来改换思路,是否是文件传输过程中存在问题。然后将内存卡从板子上取下,通过读卡器接到主机上,直接拷贝运行文件,在重新接入板子上,运行,成功!
最终确定问题的根源在于串口通信的过程中,导致二进制文件中的某些信息丢失,造成程序无法执行。
更多推荐
所有评论(0)