Mac上的单声道64位。缺少4.5

时间:2014-05-19 19:34:18

标签: macos mono 64-bit monomac mono-embedding

我希望将embed Mono转换为64位Mac OSX应用程序(从Windows C ++移植,一切正常)。由于只为Mac OSX预编译了32位Mono,我设法构建了自己的64位Mono版本following this manual

在XCode中调试我的64位应用程序时,单嵌入初始化失败了 “未找到或无法加载程序集mscorlib.dll。 它应该已经安装在`usr / local / lib / mono / 4.5'目录中。“

我可以进入生成此错误的代码(domain.c - mono_init_internal())。不幸的是我的单声道版本显然没有生成4.5目录。唯一可用的“.NET-Version”似乎是2.0:usr / local / lib / mono / 2.0 / mscorlib.dll存在,但根本没有4.5子目录。

我在构建中忘记了什么吗?

非常感谢您的支持。

2 个答案:

答案 0 :(得分:0)

另一种解决方案是采用Mono 32位分布,构建64个二进制文件(不带MCS),并将结果合并。

这是this project为提供通用二进制文件而工作的方式。您可以调整它以替换二进制文件而不是合并它们。

答案 1 :(得分:0)

找到它。我问题的答案"我在构建中忘记了什么?"是是的!显然,默认情况下,。/ configure;使;编译所有可用的.NET平台(2.0,3.5。,4.0,4.5)。构建完成后,您可以在{UnpackedTarBall} / mcs / class / lib下找到它们 - 有net_2_0,net_3_5,net_4_0和net_4_5子目录。 很遗憾" make install"只安装我原来的帖子中描述的.Net 2.0。 我设法按以下顺序安装其他配置文件:

$ cd {UnpackedTarBall}/mcs
$ make PROFILE=net_4_5 install

重复并替换上面的其他配置文件(net_3_5,net_4_0)。 {UnpackedTarBall} / mcs / README中有一些有用的提示。