使用g ++构建64位可执行文件

时间:2013-11-05 10:38:23

标签: c++ g++ 64-bit

我在solaris 10 x86机器上构建g ++ 3.4.6。使用这个g ++,我尝试使用-m64选项

构建一个64位二进制文​​件
g++ -m64 test.cpp -o test.exe

我没有遇到任何问题。然后我将整个gcc安装目录复制到另一台solaris机器(相同的硬件和操作系统)(让我们称之为机器2)。但是现在如果我试图构建一个64位二进制文​​件,我会收到以下错误

test.cpp:1: sorry, unimplemented: 64-bit mode not compiled in

但是,当我在机器2上使用另一个版本的g ++编译器(3.4.3)来构建64位二进制文​​件时,我没有收到任何错误。这让我感到困惑,因为

  1. 如果这是g ++最初构建的问题那么为什么它可以在机器1上运行而不在机器2上运行?
  2. 如果这是机器的问题,那么为什么在机器2上,另一个版本的g ++编译器能够生成64位二进制文​​件?
  3. 关于再次构建编译器或关于机器配置,我需要做些什么才能使用g ++ 3.4.6在机器2上构建64位二进制文​​件?

1 个答案:

答案 0 :(得分:1)

我认为您可能需要配置 gcc binutils 以获得以下选项:

--enable-multilib
--enable-targets=i686-pc-linux-gnu,x86_64-pc-linux-gnu

你还需要32位和64位版本,例如glibc(不确定这最后一位,但这就是我的linux系统设置的方式,似乎可以用于64位和32位编译。

These posts are worth a look too (from gcc help)

如果您需要更多帮助,请随时回复我,并努力这样做。

<强>附录:

刚刚发现这些帖子也可能有所帮助:here