我正在开发一个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发行版都没有问题.