什么情况下,可执行命令就是不能执行?
- 0次
- 2021-07-15 14:35:43
- idczone
这个问题搞了我一天,分别在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
这是个32位的程序,需要32位的可执行库
你试试安装下 ia32-libs 试试吧
你在Windows下编译的能在Linux下运行吗?同样,虽然都是类Unix系统,你在 OS X、BSD下编译的也不能直接在Linux下运行,各个平台的二进制文件标准不一样,除非使用交叉编译,但这个比较麻烦,你还是直接把程序在Ubuntu下编译好了