当您在.NET中编译Windows应用程序时,您可以将“Platform Target”设置为x86或x64。这会优化您的代码到处理器的特定架构,并允许逃离IL。 有谁知道是否有什么可以实现Windows Mobile应用程序的相同结果?我只关心在ARM架构上运行我的应用程序。以.NET编译器为目标的ARM体系结构
回答
使用Mono的Ahead-of-Time(AOT)汇编。这就是他们如何将UNITY脚本编写到作为ARM平台的iPhone上。它可能需要一些劳动才能在Windows Mobile上启动并运行,因为afaik,没有人做过特定的平台端口,但编译器等应该已经在那里了。
您可以在MS PDC here上看到Miguel de Icaza的介绍。
我不相信指定平台目标确实优化给定体系结构生成的IL。相反,它说,“我只在指定的架构上运行,因为我包含特定于该架构的P/Invoke调用。”至少,这是我对它的理解。这意味着,在x64机器上运行时,可执行文件可以在32位版本的CLR下运行,以实现兼容性。
这是如何适应紧凑框架(我认为是你的实际平台?)我不确定。 (AOT)汇编。
x86或x64不优化IL - 这是在部署的计算机上运行的JITter的工作。 x86或x64只是marks a bitness flag。
当然,在桌面框架中,您可以将您的MSIL NGEN指定给特定的CPU - 但是IIRC,缺少本机映像将会恢复为JIT编译。除此之外,尽管如此,我不认为NGEN可以用于.NET CF。
我不知道为什么你需要限制ARM处理器,但P/Invoke来GetSystemInfo将返回一个SYSTEM_INFO结构与它的处理器类型。这可能会阻止你的应用程序继续运行!ARM,但不能真正运行。
编辑:重新阅读这个问题,我注意到除了C#和.NET标记外,没有任何迹象表明您只需要一个托管解决方案。如果你愿意非托管,你显然可以编译到ARM。
如果您想在基于Windows Mobile的设备上创建基于ARM的应用程序,请安装.NET Compact Framework。你将在VS中有一个新的“智能设备”项目类型。
我不知道是否有任何其他ARM平台WM的JIT,也有.NET Micro Framework,但我不能告诉你任何关于此的信息,也许这会解决你的问题吗?
- 1. 为ARM体系结构编译libcivil
- 2. 任意体系结构的可编译目标编译器
- 3. 库编译为体系结构x64,具有ARM架构错误
- 4. Tiger编译器的目标体系结构
- 5. 使用objdump进行ARM体系结构:反汇编到ARM
- 6. 为linux arm目标交叉编译greenlet
- 7. 为iPhone 6编译错误(没有体系结构编译)
- 8. 没有体系结构编译iphone sdk
- 9. CMake多体系结构编译
- 10. 以Java,.NET或Ruby为目标的Smalltalk编译器
- 11. LLVM支持哪些ARM体系结构?
- 12. GDB如何确定ARM体系结构
- 13. 使用Mono.Cecil的.NET程序集目标体系结构
- 14. ARM的体系结构和编程模型
- 15. RIA服务器体系结构.NET
- 16. Clang为Windows Phone编译目标ARM目标
- 17. INSTALL_FAILED_NO_MATCHING_ABIS即使编译为所有支持的体系结构
- 18. 为Windows和Mac编译OpenAES for 64位体系结构
- 19. 在x86_64体系结构中编译为32位模式
- 20. 升级到xcode 4错误没有体系结构编译为
- 21. 在C中,ARM编译器如何优化这个结构?
- 22. Python项目体系结构
- 23. 关于为Xscale ARM构建交叉编译器的建议?
- 24. .NET中的插件式体系结构
- 25. 在英特尔机器上构建ARM体系结构的Docker镜像(Mac)
- 26. 为arm编译交叉编译e2fsprogs
- 27. ASP .NET MVC体系结构适合传统的多层体系结构
- 28. 如何构建任何编程项目的体系结构?
- 29. 如何构建任何编程项目的体系结构?
- 30. 为arm-gcc编译器安装库
我不认为这是真的。我已经将Windows/Web应用程序编译为x64应用程序,即使您有符号可用,并且附加调试程序很多次,您也会收到调试程序无法获取变量值的消息,因为代码是优化。 – 2009-01-24 21:52:00