当e。 G。创建Windows Phone应用程序,我必须在模拟器和ARM中选择x86进行调试,以便在手机上进行调试。那当然是因为我的电脑运行的是x86(x64,具体而言,但x64处理器只有不同的寄存器长度(请纠正我,如果我错了)),我的手机有ARM处理器。但不像C++ C#不是直接编译成汇编器,而是编译成某种中间语言。所以我的问题是:为什么这个中间语言在不同的平台上有所不同。重写解释中间语言的虚拟机是不够的?例如, Java可以在Mac,PC等上运行,无需为每个平台编译。为什么需要为多个平台编译.NET代码
4
A
回答
4
你刚刚做错了。无论平台选择如何,IL都完全一样。
当您在Visual Studio 2013中创建新的Phone项目时,您将得到一个解决方案三个平台选择:AnyCPU,x86和ARM。后两者在纯.NET项目中是多余的。它们出现的唯一原因是因为Phone还支持本地C++项目。由于C++直接编译为机器码,所以目标体系结构确实是。
在纯.NET项目中,您只需要AnyCPU。当然命名相当;)
1
中间语言(CIL;通用中间语言)不是跨目标平台不同。然而,其已经将准时编译(或预编译)为目标CPU的机器语言。否则它不会运行(注意:它可以被解释,但这不太可能)。 Java完全一样。
关于Visual Studio中的目标CPU设置,您始终可以使用AnyCPU
并且问题消失。
相关问题
- 1. 为什么perl编译的代码需要更多内存?
- 2. 为什么需要编译Java代码,但JavaScript代码不需要
- 3. 为什么要编译Haskell代码?
- 4. 这段代码为什么要编译?
- 5. 为什么SASS编译不需要/未使用的代码
- 6. 需要帮助了解为什么此代码不能编译
- 7. 如何为多个平台编译库
- 8. 为什么不编译这个代码?
- 9. 为什么不编译这个代码?
- 10. 这个C代码为什么编译?
- 11. 为什么不编译这个代码?
- 12. 为什么这个Java代码编译
- 13. 斯卡拉平等:为什么这个代码编译?
- 14. 为什么我无法使用VC2010编译x64平台的汇编代码?
- 15. 为什么XAML不需要编译?
- 16. GCC编译代码:为什么整数声明需要几个语句?
- 17. Java编译混淆:为什么这个代码编译?
- 18. 为什么编译多个分号的代码?
- 19. 这段代码为什么不编译?
- 20. C++:为什么代码正在编译
- 21. 此代码为什么编译失败?
- 22. 为什么不编译这段代码?
- 23. 阵列代码 - 为什么不编译?
- 24. 为什么编译成中间代码?
- 25. 为什么代码不能编译
- 26. Blend为什么要编译?
- 27. 为什么要编译?
- 28. 为什么需要XML编码?
- 29. 为什么你需要编码URL?
- 30. 为什么不使用.NET 4.0在VS2010中编译此代码?
坦克为您的答案。而且要清楚:我没有问题,这更像是一个纯粹的兴趣问题。但无论如何:谢谢。 – jalgames