我正在开发一个64位应用程序.是否可以在32位操作系统上运行64位应用程序?

Jay*_*Jay 12 c 32bit-64bit

我正在开发一个64位应用程序.是否可以在32位操作系统上运行64位应用程序?

请注意,该问题是通用的,并非特定于Windows操作系统.事实上,应用程序本身可以在OS上移植.

Dou*_*der 14

(我们假设您分别讨论AMD64(== EM64T == x86_64)和x86分别为64位和32位)

您只能通过仿真(例如qemu)或某些类型的虚拟化在x86处理器上运行AMD64代码(我相信VMWare可能在64位CPU上的32位主机操作系统上支持64位客户操作系统).但是,这意味着在仿真或虚拟化上作为访客运行64位操作系统.

在开发应用程序时,开发代码的32位和64位版本应该不会太难.

对于Mac,您可以发送包含两种类型代码的单个二进制文件,或者Mac OSX可以在32位内核上运行您的64位二进制文​​件(仅在支持x86_64的处理器上).对于Windows和Linux,您必须运送单独的安装程序,或运送一些智能安装程序,在安装时选择正确的二进制文件.对于Linux,有一个项目可以添加在AMD64处理器上的x86内核上运行AMD64代码的能力 - http://linuxpae64.sourceforge.net/ - 但它看起来并不像主线内核那么深入.

有没有特别的原因你只想生成64位二进制文​​件?
如果要访问额外的内存,那么32位操作系统无论如何都无法为您提供额外的内存.
如果要避免必须测试2个不同的版本,那么只需生成32位版本,它就可以在Windows AMD64上工作,并且大多数Linux AMD64发行版都没有问题.


Ott*_*ger 7

在Windows上,仅使用虚拟机.

在OS X上,64位应用程序本机运行(感谢Stephen)


Lia*_*amB 5

反过来说很好,有点我认为你不能在32位操作系统上运行64位应用程序,你可以使用虚拟机或某种虚拟化.