我正在开发一个64位应用程序。能否在32位操作系统上运行64位应用程序?
请注意,这个问题是通用的,并不特定于Windows操作系统。事实上,这个应用程序本身可以在各种操作系统上移植。
我正在开发一个64位应用程序。能否在32位操作系统上运行64位应用程序?
请注意,这个问题是通用的,并不特定于Windows操作系统。事实上,这个应用程序本身可以在各种操作系统上移植。
我们假设你谈论的是AMD64(== EM64T == x86_64)和x86分别用于64位和32位。
只有通过仿真(例如qemu)或某些类型的虚拟化,您才能在x86处理器上运行AMD64代码(我相信VMWare可能支持64位客户机操作系统在64位可用CPU上的32位主机操作系统上)。但是这意味着作为客户机在仿真或虚拟化中运行64位操作系统。
由于您正在开发应用程序,因此开发32位和64位版本的代码不应太困难。
对于Mac,您可以发布一个包含两种类型代码的单个二进制文件,或者Mac OSX可以在32位内核上运行您的64位二进制文件(仅在支持x86_64的处理器上)。对于Windows和Linux,您将必须发布单独的安装程序或者发布一些智能安装程序,在安装时选择正确的二进制文件。对于Linux,有一个项目添加了在AMD64处理器上的x86内核上运行AMD64代码的功能 - http://linuxpae64.sourceforge.net/ - 但它似乎没有很快地进入主线内核。
你为什么只想生成64位二进制文件?是否因为需要访问更多的内存,但32位操作系统也无法提供额外的内存。如果只是为了避免测试两个版本,请生成32位版本,它可以在Windows AMD64上运行,并且大多数Linux AMD64发行版也能够正常使用。
在Windows上,只能使用虚拟机。
在OS X上,64位应用程序可以本地运行(感谢Stephen)
不行。
32 位和 64 位是指计算机处理器(也称为 CPU)处理信息的方式。与 32 位系统相比,64 位版本的 Windows 更有效地处理大量随机访问内存 (RAM)。有关详细信息,请在线查看《Windows Vista 的 32 位版本和 64 位版本之间差异的说明》。
了解32位和64位之间的区别,你就会明白为什么这是不可能的。
如果你正在使用Windows系统,请查看这个链接:
如果程序专门为64位Windows版本设计,那么它将无法在32位Windows版本上运行。(然而,大多数为32位Windows版本设计的程序可以在64位Windows版本上运行。)
为64位Windows版本设计的设备驱动程序将无法在运行32位Windows版本的计算机上工作。要了解如何检查驱动程序,请参阅更新不正常工作的硬件驱动程序或转到设备制造商的网站。
一个64位的应用程序无法在32位处理器上运行。
64位应用程序使用64位宽的寄存器,而32位处理器无法容纳这么宽的寄存器。