在开始学习C++之前,我总是在脑子里想到这些问题:
1-在x86计算机上编译的应用程序是否可以在x64计算机上运行?
2-在x64计算机上编译的应用程序是否可以在x86计算机上运行?
3-有什么区别吗?
4-如果1和2是肯定的,那么为什么有些应用程序对每个os位有不同的下载,为什么我得到的一些lib如lua52有一个x64和x86版本只能在指定的os上运行而且在不同的os上有错误?
编辑:
5-如果我的操作系统是x64,我可以在x86中编译我的应用程序吗?
好吧,让我们尝试依次解决这些问题
是的,x86计算机可以交叉编译为x64代码(这是一种常见的做法).此外,基于x64的操作系统可能具有用于运行x86代码的仿真层(这是Windows为向后兼容性所做的)
是的,x64计算机可以交叉编译为x86代码(也是一种常见的做法).从理论上讲,基于x86的操作系统可以有一个用于运行x64代码的仿真层(虽然我不相信这是在实践中完成的)
在交叉编译的情况下,在x64计算机上编译的x64代码与在x86计算机上编译的相同代码之间没有区别.如果x64正在运行仿真层来运行x86代码,那么它将比运行本机x64代码效率低.如果要支持x86系统,则必须提供x86版本.
请参阅(3) - 提供"原生"版本通常会更好.
是. - 见(1)和(2)
| 归档时间: |
|
| 查看次数: |
112 次 |
| 最近记录: |