我有一個主要問題和兩個小問題都是相關的。首先,ngen.exe是否真正編譯爲可以分發的本地exes?對ngen.exe知之甚少。其次,是否真的有一種方法可以將.net編譯爲本機x86代碼,即使它們仍然依賴.net框架。最後,單聲道,你可以編譯爲本地代碼,只需將你的項目從VS中「夾緊」到單聲道?NGEN.EXE(它真的編譯爲本地代碼嗎?)
回答
簡答:是的。當你啓動一個沒有NGEN的.NET應用程序時,當你第一次執行一個方法時,它被編譯爲本機代碼。 .NET虛擬機不執行MSIL,它只執行本機代碼。 NGEN所做的就是預先完成所有這些工作。有關更多信息,請參閱http://msdn.microsoft.com/en-us/library/6t9t5wcf(v=vs.80).aspx。
有很多管理的基礎設施,例如,垃圾收集。這就是你所說的虛擬機。 –
或者你可以看到[Brad Abrams](http://www.businessinsider.com/guy-in-charge-of-microsoft-silverlight-goes-to-google-2010-2010)認爲,http:// stackoverflow.com/questions/1564348/is-the-clr-a-virtual-machine,這就是'CLR和JVM在同一個類中,無論你調用該類軟件的「虛擬機」還是「執行引擎」都取決於你的觀點。「 – Motes
- 1. 爲iOS和Android編譯C++代碼(XCode)。這是真的嗎?
- 2. 如何編譯ngen.exe以及如何運行生成的本機代碼?
- 3. 能夠從apdfviewer編譯本地代碼嗎?
- 4. AOT編譯或本地代碼編譯Scala?
- 5. Xamarin無法編譯爲本機代碼
- 6. Ionic將代碼編譯爲本機?
- 7. 腳本編譯C代碼
- 8. 如何將ocaml編譯爲本地代碼
- 9. 錯誤C3645:__clrcall不能編譯爲本地代碼
- 10. 有條件的調試 - 它仍然編譯成RELEASE代碼嗎?
- 11. 理論上講,我可以得到openJDK JIT,並將我的java代碼編譯爲本地代碼嗎?
- 12. 將OpenMP代碼編譯爲C代碼
- 13. 編譯python代碼,然後把它放在別的地方
- 14. ,它使用本地代碼
- 15. 編譯C代碼爲C#
- 16. C#編譯爲MSIL代碼
- 17. 我可以測試ES2015('ES6')代碼而無需編譯它嗎?
- 18. 交叉編譯C++;從Linux到Windows,它真的有用嗎?
- 19. 內聯彙編代碼不會編譯爲空......這是編譯器問題嗎?
- 20. Android NDK本地代碼是否爲真本機?
- 21. 能在Linux上編譯Windows代碼嗎?
- 22. python distutils可以編譯CUDA代碼嗎?
- 23. 本地編譯
- 24. 重新編譯編譯器對編譯後的代碼有影響嗎?
- 25. 編譯錯誤的代碼的編譯
- 26. 是否有可能使用pypy將Java字節碼編譯爲本地代碼?
- 27. 這段代碼是做什麼的,它爲什麼編譯?
- 28. 如何使用Android.mk編譯簡單的本地代碼?
- 29. 是否有JavaScript的本地機器代碼編譯器?
- 30. 構建快照vs本地編譯代碼的參數?
我可以看到這是標題,答案是「否」。 Ngen必須在用戶的機器上運行,您不能發送.ni.dll文件。而且您仍然需要原始程序集,它們包含抖動所需的元數據。 –
謝謝你,一個誠實的回答。但有沒有辦法編譯爲本地代碼? – user2514562