我希望将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子目录。
我在构建中忘记了什么吗?
非常感谢您的支持。
答案 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中有一些有用的提示。