正如标题所说,我已经编译了 C 程序并在 64 位机器上创建了一个二进制文件。这个二进制文件在 32 位下工作吗?
问问题
1239 次
3 回答
6
64 位二进制文件无法在 32 位操作系统上运行。如果file
报告ELF 64-bit
,您有一个 64 位二进制文件。
为了在 64 位 Linux 上构建 32 位二进制文件,您需要传递-m32
给 gcc。您还需要安装 32 位库 ( sudo apt-get install libc6-dev-i386
)。
于 2010-02-08T10:07:46.620 回答
5
编译机无所谓。重要的是:生成的代码是 32 位(答案:是)还是 64 位(答案:否)。
于 2010-02-08T09:55:02.327 回答
1
它可以在 32 位机器上运行吗?一个 CPU 不支持 64 位模式?不。
它可以在 32 位本机操作系统上的 64 位 VM 上运行吗?是的,根据我的经验。
一个令人惊讶的结果是 64 位 VM 可以在 32 位主机操作系统下运行,前提是 CPU 有能力并且您不想为来宾分配太多内存(>2G 左右)。
于 2010-02-08T22:08:16.100 回答