首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法从linux控制台运行C++应用程序-“找不到”错误

无法从linux控制台运行C++应用程序-“找不到”错误
EN

Stack Overflow用户
提问于 2016-04-22 13:10:14
回答 2查看 521关注 0票数 0

我有两个MIPS路由器运行openwrt。其中一件事很好,我可以轻松地在控制台上运行我的应用程序。我将它复制到scp (这是我的应用程序,一个文件)到另一个路由器,当我试图运行它时,我会得到“找不到”错误:

代码语言:javascript
复制
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的新手,但我找不到问题所在。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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]有帮助。

因此,我怀疑如果我从我的系统中删除这个“程序解释器”,我会得到同样的错误(可能还有很多其他错误)。同样,尝试重新编译目标系统上的二进制文件,或者通过将正确的文件移动到正确的位置来手动满足任何缺失的依赖关系。

票数 2
EN

Stack Overflow用户

发布于 2016-04-22 13:16:51

在你的./应用程序中,我有一种感觉,你正在调用的东西根本不存在。在本例中,"ash“命令。

基于这个错误

代码语言:javascript
复制
ash: ./app: not found

我觉得你正在你的./应用程序中运行一段代码。基于“灰”,我想说你是在尝试运行"bash“。如果我不得不猜到你在你的剧本中输入了你的标题

代码语言:javascript
复制
#!/bin/bash
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36794785

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档