使用g++构建64位可执行文件
Building 64bit executables with g++
我在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位二进制文件时,我没有得到任何错误。这让我对感到困惑
- 如果这是g++最初是如何构建的问题,那么为什么它在机器1上工作而在机器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位编译。
这些帖子也值得一看(来自gcc帮助(
如果你需要更多的帮助,请随时回复我,我们将努力做到这一点。
附录:
刚刚也发现了这些帖子,这可能会有所帮助:这里是
相关文章:
- 如何将不同的可执行文件合并到一个窗口框架中进行编码?像浏览器一样
- 如何使 windows 命令提示符在C++可执行文件上显示返回值?
- CMake:如何将库 A 链接到库 B,然后将可执行文件链接到库 A
- 如何使字符串出现在编译的二进制可执行文件的开头?
- 程序在使用 system() 启动另一个可执行文件时停止
- 如何更改使用 CPack 安装的可执行文件的名称?
- 在Linux上使用Clang / OLLVM交叉编译helloworld Windows可执行文件时的问题
- CMake:我们可以为一组不形成可执行文件或库的特定文件指定包含目录吗?
- 如何将图像传入C++可执行文件并将输出图像存储在新目录中?
- 共享库 (.so) 没有扩展名的 Linux 可执行文件之间的区别?
- 如何从 Linux 交叉编译到 32 位 Windows 可执行文件
- 尝试在QTCreator上构建远程ARM设备的C ,可执行文件为64位
- 32位Visual Studio生成64位可执行文件
- 在32位和64位处理器上运行混合的mpi可执行文件
- 使用g++构建64位可执行文件
- 64 位C++ Eclipse 正在制作 32 位可执行文件
- 在64位可执行文件中执行64位计算
- 在32位操作系统上生成64位可执行文件
- c++可执行文件不能在windows7-64位不兼容的环境下运行
- 用静态链接库在64位机器上编译位置无关的可执行文件