无法执行二进制文件

时间:2014-08-19 04:56:44

标签: linux node.js ubuntu

我最近听说过 Breach ,一个基于Node.js的浏览器。我按照http://codeforgeek.com/2014/08/download-install-breach-browser-ubuntu-14-04/上的说明安装它但出现以下错误:

breach-v0.3.22-alpha.6-linux-x64 / __ AUTO_UPDATE_BUNDLE __ / exo_browser / exo_browser:无法执行二进制文件:执行格式错误

经过一些谷歌搜索,我发现这是因为我试图在32位Ubuntu安装上安装64位软件包。我试图找到相同的32位包但最终没有运气。浏览器仅提供64位数据包(据我所知)。

所以,我的问题是:

是否可以以某种方式将其安装在32位操作系统上,或者是否可以在32位操作系统上运行64位应用程序的任何程序。

我一直在谷歌上搜索,没有找到任何帮助。任何人都可以帮助我吗?

我使用的是Ubuntu 14.04(32位)。

谢谢

2 个答案:

答案 0 :(得分:1)

无法(直接)在32位系统上运行64位二进制文​​件。

可以尝试使用VMWare在32位主机上运行64位Linux。有关详细信息,请参阅this answer

另外,通过检查Breach的登陆页面,我发现了这个:

  if(arch === 'ia32') {
    $('#download').html('Available on <span class="fa fa-linux"></span> x64');
    $('#download').attr('href', '#');
    /*
    $('#download').html('<span class="fa fa-linux"></span>&nbsp;&nbsp; Download Breach Alpha v0.3 (ia32)');
    $('#download').attr('href', 'http://bit.ly/1kWWjmF');
    */
  }

这表明他们正在开发32位Linux支持。也许在Twitter / Github上询问开发人员的状态?

答案 1 :(得分:1)

我遇到过与c文件类似的问题。我认为它与我们使用的编译器有一些关系 我的内核版本是

3.13.0-40泛型

通过在终端执行命令uname -r获得。

我有一个执行文件操作的代码文件。当我使用带有适当标志的GCC并创建一个名为&#34; fileop&#34;的目标文件时。并尝试运行它 我收到以下错误。
&#34; bash:./ filename:无法执行二进制文件:执行格式错误&#34;
我的可执行链接文件是32位,您可以使用命令
看到 &#34;文件fileop&#34;
fileop:ELF 32位LSB可重定位,Intel 80386,版本1(SYSV),未剥离

但是当我使用&#34; CC&#34;而不是GCC,它创建了一个名为a.out的输出文件,我能够毫无问题地执行它 &#34;文件&#34;操作产生以下输出
a.out:ELF 32位LSB可执行文件,Intel 80386,版本1(SYSV),动态链接(使用共享库),用于GNU / Linux 2.6.24,BuildID [sha1] = 13b7ad302580a0c7f5c7931ec2d80155d7915fa9,未剥离

希望上面的描述能够更清楚地说明问题。