gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:18:01 25 4
gpt4 key购买 nike

我在 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 位二进制文​​件?

关于再次构建编译器或关于机器配置,我需要做什么才能使用 g++3.4.6 在机器 2 上构建 64 位二进制文​​件?

最佳答案

我认为您可能需要配置 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

关于c++ - 使用 g++ 构建 64 位可执行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19786966/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com