【发布时间】:2020-06-02 04:31:36
【问题描述】:
据我所知,Xamarin 将 C# 转换为二进制,并使用 mtouch 来实现。
LLVM 是 XCode 将 Objective-C 转换为二进制代码的方式。
因此 Xamarin 不使用 LLVM。
【问题讨论】:
-
是的,你是对的。
标签: ios xcode xamarin llvm xamarin-studio
据我所知,Xamarin 将 C# 转换为二进制,并使用 mtouch 来实现。
LLVM 是 XCode 将 Objective-C 转换为二进制代码的方式。
因此 Xamarin 不使用 LLVM。
【问题讨论】:
标签: ios xcode xamarin llvm xamarin-studio
Xamarin.iOS 项目可以选择使用 LLVM 编译器。看看here。您可以通过选中 Xamarin.iOS 项目属性中的框来启用它。
Xamarin.iOS 文档有一个有用的图形,显示了一般编译过程中的 LLVM 步骤here。在讨论图形的文本中,说明了您的 C# 代码是如何编译到 IL 中的。在使用真正的 iOS 设备时,不允许使用 JIT,因此在托管代码上使用 AOT 编译器,并且可以选择使用 LLVM 来进一步优化代码。
Xamarin.Android 也有一个可选的 LLVM 编译器,但它需要商业许可证或更高版本才能访问。更多信息请联系here。
Android 设备上允许 JIT,但您可以选择使用 AOT 编译器以减少启动时间,但代价是增加 APK 大小。如果启用 AOT,也可以启用 LLVM。尽管在 Android 上对此的警告是他们暂时禁用了 UI 选项(但仍然允许您手动更改 .csproj 文件中的设置)并且他们说这些功能充其量只是实验性的。我不知道状态或影响,或者他们为 Android 禁用了这些选项。
【讨论】: