我有两个MIPS路由器运行openwrt。其中一件事很好,我可以轻松地在控制台上运行我的应用程序。我将它复制到scp (这是我的应用程序,一个文件)到另一个路由器,当我试图运行它时,我会得到“找不到”错误:
root@OpenWrt:~# pwd
/root
root@OpenWrt:~# ls -l
-rwxr-x--- 1 root root 132001 Apr 2 17:37 app
root@OpenWrt:~# ./app
ash: ./app: not found
root@OpenWrt:~# uname -a
Linux OpenWrt 3.7.9 #3 Mon Aug 5 16:25:53 EEST 2013 mips GNU/Linux我不是linux的新手,但我找不到问题所在。
发布于 2016-04-22 14:08:25
我当然不是编译器专家,但从在嵌入式系统上移动二进制文件的痛苦经验来看,这个神秘的错误使我相信这是某种依赖错误;很可能是缺少链接器。重新编译目标系统上的二进制文件在过去已经为我解决了这个问题。
凯文·瓦斯科在评论中问道:“你能在上面运行ldd ./app吗?”
这是确定程序所期望的库和链接器的好方法。还可以按照this answer中的建议,演示类似的问题,并运行以下命令,只获得“程序解释器”行(ldd将显示几个依赖项):
readelf -l app | grep "program interpreter"
在我的系统中,这显示了GNU链接器ld,但是有一行解释性的文本,这可能对[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]有帮助。
因此,我怀疑如果我从我的系统中删除这个“程序解释器”,我会得到同样的错误(可能还有很多其他错误)。同样,尝试重新编译目标系统上的二进制文件,或者通过将正确的文件移动到正确的位置来手动满足任何缺失的依赖关系。
发布于 2016-04-22 13:16:51
在你的./应用程序中,我有一种感觉,你正在调用的东西根本不存在。在本例中,"ash“命令。
基于这个错误
ash: ./app: not found我觉得你正在你的./应用程序中运行一段代码。基于“灰”,我想说你是在尝试运行"bash“。如果我不得不猜到你在你的剧本中输入了你的标题
#!/bin/bashhttps://stackoverflow.com/questions/36794785
复制相似问题