linux – 如何在Ubuntu上运行无扩展(也许是ELF)文件?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了linux – 如何在Ubuntu上运行无扩展(也许是ELF)文件?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1598字,纯文字阅读大概需要3分钟。
内容图文
![linux – 如何在Ubuntu上运行无扩展(也许是ELF)文件?](/upload/InfoBanner/zyjiaocheng/971/57bfe0d4317240d69f5a40745bfeb5da.jpg)
我在Linux上获得了一个“二进制”文件,并为特定任务提供了一个单独的Windows文件.这些程序是windows上的exe.该版本的linux版本在linux上具有与Windows相同的功能.
但是,我无法执行此操作.我尝试(在终端上)只通过文件名./[filename执行它,甚至尝试chmod x [filename]然后尝试第二种方式.
对于一切…我得到结果:“找不到命令”. (顺便说一下,文件肯定在那里).
我应该做些什么?它上面的文件命令产生:
ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=e805f746e65c09cc8b0c037d8a8c27ee0a6a051c
最佳答案:
我的猜测是这是64位系统上的32位编译.我使用gcc上的-m32选项将一个小的c文件交叉编译成二进制文件.这还需要一些额外的包.结果a.out看起来像这样.
% file a.out
a.out: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=be02470c8337b96e7deaaff323bc53865991c3ab, not stripped
将其与本机系统二进制文件进行比较
% file /bin/ls
/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=a0823e17cafbe5b2296346216445566840fdfd88, stripped
运行a.out告诉我这个.
% ./a.out
zsh: no such file or directory: ./a.out
我认为,特定的“未找到命令”消息是bash打印的内容.我自己用zsh.
要使其工作,您可以安装multilib包.我没有把它缩小到确切的包,但在Debian上安装gcc-multilib可以提供你需要的一切.安装完成后,这就是我得到的.
% ./a.out
3.140523
(该程序应该估计PI的价值).
注意:我实际上只需要安装gcc-multilib来编译文件.然后,我卸载了这些软件包,以模仿64位系统,该系统没有所需的32位运行时库.
内容总结
以上是互联网集市为您收集整理的linux – 如何在Ubuntu上运行无扩展(也许是ELF)文件?全部内容,希望文章能够帮你解决linux – 如何在Ubuntu上运行无扩展(也许是ELF)文件?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。