當您在.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