正如标题所说,我已经编译了C程序并在64位机器上创建了一个二进制文件。这个二进制文件在32位下工作吗?
答案 0 :(得分:5)
64位二进制文件无法在32位操作系统上运行。如果file
报告ELF 64-bit
,则您有64位二进制文件。
要在64位Linux上构建32位二进制文件,需要将-m32
传递给gcc。您还需要安装32位库(sudo apt-get install libc6-dev-i386
)。
答案 1 :(得分:4)
编译机无关紧要。重要的是:代码生成32位(答案:是)或64位(答案:否)。
答案 2 :(得分:0)
它能在32位机器上运行吗?一个CPU不支持64位模式?否。
它是否适用于32位本机操作系统上的64位VM?是的,根据我的经验。
令人惊讶的结果是64位虚拟机可以在32位主机操作系统下运行,只要CPU能够并且您不希望为访客分配太多内存(> 2G或左右)。