什么情况下,可执行命令就是不能执行?

2014-10-19 03:26:41 +08:00
 netalpha
这个问题搞了我一天,分别在ubuntu(x86_64)上执行,怎么都说找不到这条命令。

sh: /Users/someone/lrb/MITSIMLab/PVM/pvm/bin/LINUX/pvm: cannot execute binary file
/Users/someone/lrb/MITSIMLab/bin/mitsim: /Users/someone/lrb/MITSIMLab/bin/mitsim: cannot execute binary file
sh: /Users/someone/lrb/MITSIMLab/PVM/pvm/bin/LINUX/pvm: cannot execute binary file

然后我从头再我的MacBook又搞了一遍,还是说不能执行。后Google了下,有些人说是因为这个命令是特定平台下编译的,不是所有平台都认。问题来了,怎么知道认不认。以下系统uname -a信息和pvm这个可执行文件的file信息.

pvm: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.0.0, not stripped

Ubuntu:
Linux LRB 3.13.0-32-generic #57-Ubuntu SMP Tue Jul 15 03:51:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

Mac:
Darwin Someone-MacBook-Pro.local 14.0.0 Darwin Kernel Version 14.0.0: Sat Sep 27 03:58:47 PDT 2014; root:xnu-2782.1.97~11/RELEASE_X86_64 x86_64 i386 MacBookPro10,1 Darwin
3625 次点击
所在节点    Linux
2 条回复
sNullp
2014-10-19 03:51:07 +08:00
这是个32位的程序,需要32位的可执行库
你试试安装下 ia32-libs 试试吧
jamesxu
2014-10-19 08:30:52 +08:00
你在Windows下编译的能在Linux下运行吗?同样,虽然都是类Unix系统,你在 OS X、BSD下编译的也不能直接在Linux下运行,各个平台的二进制文件标准不一样,除非使用交叉编译,但这个比较麻烦,你还是直接把程序在Ubuntu下编译好了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/139936

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX