gcc:在32位平台上编译64位二进制文件
是否可以使用 gcc 在 32 位 Linux 平台上编译 64 位二进制文件?
Is it possible to compile a 64-bit binary on a 32-bit Linux platform using gcc?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
如果您安装了 multilib GCC,则只需将
-m64
添加到命令行即可。如果编译器不是使用多库支持构建的,则编译器应该抱怨。为了链接,您需要标准库的所有 64 位对应项。如果您的发行版有 multilib GCC,这些也应该位于存储库中。
If you have a multilib GCC installed, it's as simple as adding
-m64
to the commandline. The compiler should complain if it is not built with multilib support.In order to link, you'll need all the 64-bit counterparts of the standard libraries. If your distro has a multilib GCC, these should also be in the repositories.
如果
-m64
选项不起作用,请进入 Synaptic 并搜索 gcc-multilib 或 g++-multilib 并安装软件包。然后,使用-m64
选项进行编译。Go into Synaptic and search for gcc-multilib or g++-multilib and install the package, if the
-m64
option does not work. Then, compile with the-m64
option.您需要一个可以在 64 位机器上编译的 gcc,例如 x86_64-linux-gcc。检查您的分发包管理器。
You will need a gcc that will compile on 64 bits machines, eg
x86_64-linux-gcc
. Check your distribution package manager.我认为你可以先安装
gcc-multilib
软件包。然后使用
gcc -m64 yourcode
编译你的代码,你可以使用file yourprogram
检查ELF文件,输出应该是这样的你的程序:ELF 64 位 LSB 可执行文件,......
I think you could install
gcc-multilib
pachage first.And then compile your code using
gcc -m64 yourcode
, you cound check the ELF file usingfile yourprogram
, the output should be like thisyourprogram: ELF 64-bit LSB executable,.......