c# - Mono AOT 编译 - 如何获取 .so 文件?

标签 c# macos compilation mono

我在 Mac 上使用 Mono,安装了 Unity。

http://www.mono-project.com/Mono:Runtime:Documentation:AOT页面指​​出带有 aot 选项的单声道编译器应该生成 .so 文件。

我得到的是一个 dylib 文件。

我的目标是从托管的 c# dll 文件生成 so 文件。

这是命令和输出(在终端中):

Gerleis-Mac:CrazInvaders gerleim$ /Applications/Unity/MonoDevelop.app/Contents/Frameworks/Mono.framework/Versions/2.10.2/bin/mono --aot -O=all iOSBuild/Data/Managed/Assembly-CSharp.dll
Mono Ahead of Time compiler - compiling assembly /Users/gerleim/Desktop/CrazInvaders/iOSBuild/Data/Managed/Assembly-CSharp.dll
Code: 2217337 Info: 87704 Ex Info: 56841 Unwind Info: 80 Class Info: 4663 PLT: 5477 GOT Info: 364454 GOT: 35852 Offsets: 109275
Executing the native assembler: as -arch i386 -W  -o /var/folders/b4/4tgynrr570zd5qdng_4ljs9m0000gn/T/mono_aot_uGBs4E.o /var/folders/b4/4tgynrr570zd5qdng_4ljs9m0000gn/T/mono_aot_uGBs4E
Executing the native linker: gcc -m32 -dynamiclib -o /Users/gerleim/Desktop/CrazInvaders/iOSBuild/Data/Managed/Assembly-CSharp.dll.dylib.tmp /var/folders/b4/4tgynrr570zd5qdng_4ljs9m0000gn/T/mono_aot_uGBs4E.o
Compiled 12759 out of 12761 methods (99%)
2 methods have other problems (0%)
Methods without GOT slots: 8190 (64%)
Direct calls: 716 (20%)
JIT time: 1427 ms, Generation time: 1045 ms, Assembly+Link time: 1712 ms.

我猜汇编器和链接器的参数有问题,但我没有更改这些参数的选项(参见 http://mono.wikia.com/wiki/Man_mono)

(从 Unity IDE 构建时,Unity 使用单声道和 aot 并为 XCode/iOS 生成 .s 文件。)

最佳答案

.sos 是 Linux 二进制文件,因此您必须在 Linux 上提前编译。相反,当您在 OS X 上执行此操作时,您会得到一个 .dylib,因为那是一个 OS X 库二进制文件。即使您的 Mac 上有 Linux 二进制文件,它对您也毫无用处。

关于c# - Mono AOT 编译 - 如何获取 .so 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19869571/

相关文章:

c# - 在 EpiServer 8 中,如何扩展 Scheduled Publish 事件?

c# - ASP.NET 5 Process.Start?

swift - 当 NSWindowController 出现时运行一​​个函数

java - 阻止用户离开 OS X 上的处理应用程序?

c++ - g++ 忽略头文件

silverlight - Silverlight 中的 System.CodeDom.Compiler.CompilerParameters 在哪里?

c# - 编译 LESS,压缩 CSS 和 JS 并输出到构建目录

c# - 如何在初始化列表之前在查询中获取值

c - 如何使用 tcc 和 tc 在 Dos 提示符下编译 C 程序

opencv - 安装 OpenCV 3.0.0-dev,配置选项问题