使用Mono的Mac上的mkbundle:找不到“mono / metadata / mono-config.h”文件

时间:2012-12-20 19:21:52

标签: c# macos mono mkbundle

我正在尝试使用Mono创建一个Mac套装。当我执行:

    mkbundle file.exe --deps -o FILE

我在编译期间得到了这个:

    fatal error: "mono/metadata/mono-config.h" file not found

我错过了什么吗?

3 个答案:

答案 0 :(得分:7)

我在Mac上遇到同样的问题。我通过设置pkg-config来解决它。

export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/lib/pkgconfig:/Library/Frameworks/Mono.framework/Versions/3.0.12/lib/pkgconfig

只是一个抬头,对于Mac你必须......

export AS="as -arch i386"
export CC="cc -arch i386"

...正如此处An issue when running mono 2.10.2 mkbundle on Mac OS X snow leopard所述,但在Mountain Lion上,我不得不这样做,以便应用程序可以在Lion上运行。

export AS="as -arch i386"
export CC="clang -arch i386 -mmacosx-version-min=10.6"

答案 1 :(得分:7)

关键是前面的错误(sh: pkg-config: command not found), 请注意,pkg-config存储在'/Library/Frameworks/Mono.framework/Commands'。

解决方案(请参阅herehere):

将“/Library/Frameworks/Mono.framework/Commands”文件夹添加到 你的PATH变量:

export PATH=/Library/Frameworks/Mono.framework/Commands:$PATH

此外(由aiapatag和objective-c runtime and CoreFoundation framework solution proposed here提议)。

export AS="as -arch i386"
export CC="cc -arch i386 -framework CoreFoundation -lobjc -liconv"

答案 2 :(得分:4)

尝试重新安装Mono Development Kit(MDK)。不要在MDK之上安装Mono Runtime Environment(MRE)。 MDK就足够了。

然后,如果你正在使用Windows(但我想你是在OSX上 - 但只是提一下):你需要一个类似Unix的工具链才能让mkbundle工作。

摘录:来自their site

  

在Windows系统上,必须使用类似Unix的工具链   为mkbundle安装工作。你可以使用cygwin并安装gcc,   gcc-mingw和包。 (原文如此)