8

我发现一个新闻稿指出 Mono 现在支持本机客户端的编译。目前尚不清楚这是否仅可从单独的 github mono fork 中获得,或者作为标准发行版的一部分。

我已经构建了分叉的 mono 发行版,但是我找不到任何关于如何构建本机客户端可执行文件以便我可以在 Chrome 中运行它的示例。

是否有人知道示例项目,或者您能否提供一个示例来说明如何为 NaCl 构建 Mono 应用程序?

4

3 回答 3

4

我认为其中一些更改可能已被上游化,但截至今天(2011 年 11 月 16 日),肯定有一些错误修复仍然只存在于 github 分支中(https://github.com/elijahtaylor/mono/)。要为 nacl 构建单声道,请按照 mono/nacl 目录 ( https://github.com/elijahtaylor/mono/tree/master/nacl ) 中的说明进行操作。您需要 mono 运行时,它将构建一个可以嵌入到您的 nacl 模块中并且可以 JIT 编译 .NET 程序集的 mono。(还有一个在 linux/mac 上运行并生成 nacl 模块的单声道 AOT 编译器,但我很确定它现在不起作用,因为没有人使用或测试它)。

请参阅 nacl/test/my.c 和 mono/mini/fsacheck.c 以获取有关如何从 nacl 模块调用 mono 运行时 JIT 代码的示例。在浏览器中,您必须想出自己的方式(例如,pepper 和/或 nacl-mounts)才能将字节码放入您的 nacl 模块中。

于 2011-11-16T19:17:27.690 回答
3

我不确定它是否已上传到 Mono 存储库,但这里有一个在 NaCl 上运行的分支:https ://github.com/elijahtaylor/mono 注意,使用风险自负!

于 2011-10-28T13:49:25.647 回答
3

2012 年 3 月的这篇文章表明 Chrome 19 具有对嵌入式 Mono的本机客户端支持

现在可以在 SDK 中下载用于 Native Client 的 Mono 版本。这些是用 glibc 编译的,而 libmono 作为动态库提供。只有pepper_19 及更高版本有Mono 可用。

请注意,您必须保持您的 pepper_X 和 naclmono_X 包同步(即,不要在不更新另一个的情况下更新一个),否则您可能无法运行生成的构建 nexe。与给定 SDK 匹配的新版本 Mono 应该在新的 SDK 版本可用后的数小时内可用。

Native Client 目前仅支持嵌入式 Mono (http://www.mono-project.com/Embedding_Mono)。

于 2012-09-07T02:56:52.353 回答