【问题标题】:gcc: Compile a 64-bit binary on 32-bit platformgcc:在 32 位平台上编译 64 位二进制文​​件
【发布时间】:2011-11-26 18:55:20
【问题描述】:

是否可以在 32 位 Linux 平台上使用 gcc 编译 64 位二进制文​​件?

【问题讨论】:

标签: linux gcc 64-bit 32-bit


【解决方案1】:

如果您安装了 multilib GCC,只需在命令行中添加 -m64 即可。如果编译器不支持 multilib,编译器应该会报错。

要进行链接,您需要标准库的所有 64 位对应项。如果您的发行版有一个 multilib GCC,这些也应该在存储库中。

【讨论】:

  • 你的意思是,我需要 64 位对应的。
  • 周末:嗯,是的。修复了:)
  • 请注意,这适用于编译器支持的所有架构。例如,这是对 ARM 设备进行交叉编译的方式。您当然可以在您的平台上编译东西(如果有足够的资源),但是大多数人使用交叉编译。树莓派就是一个很好的例子。官方操作系统是 Rasbian,它基本上是一个 Debian,因此您可以为 Rasbian 编译 ARM 二进制文件(包括 Raspberry Foundation 为您的 PC 上的 Pi 处理器提供的定制 GCC(不管它是 32 位还是 64 位)。您只需需要添加对 ARM 的支持。
【解决方案2】:

如果-m64 选项不起作用,请进入 Synaptic 并搜索 gcc-multilib 或 g++-multilib 并安装软件包。然后,使用-m64 选项进行编译。

【讨论】:

    【解决方案3】:

    您需要一个可以在 64 位机器上编译的 gcc,例如x86_64-linux-gcc。检查您的分发包管理器。

    【讨论】:

    • 我只有两年了,所以没关系:)
    【解决方案4】:

    我想你可以先安装gcc-multilib 包。 然后使用gcc -m64 yourcode编译你的代码,你可以使用file yourprogram检查ELF文件,输出应该是这样的 yourprogram: ELF 64-bit LSB executable,.......

    【讨论】:

      猜你喜欢
      • 2011-03-30
      • 1970-01-01
      • 2010-11-19
      • 1970-01-01
      • 2012-11-19
      • 2011-08-28
      • 2011-09-08
      • 1970-01-01
      相关资源
      最近更新 更多