我正在尝试使用 Mono 创建一个 Mac 捆绑包。当我执行时:
mkbundle file.exe --deps -o FILE
我在编译期间得到这个:
fatal error: "mono/metadata/mono-config.h" file not found
我错过了什么吗?
关键是前面的错误(sh: pkg-config: command not found
),注意pkg-config存放在'/Library/Frameworks/Mono.framework/Commands'。
将“/Library/Frameworks/Mono.framework/Commands”文件夹添加到您的 PATH 变量中:
export PATH=/Library/Frameworks/Mono.framework/Commands:$PATH
此外(如 aiapatag 以及此处提出的objective-c 运行时和CoreFoundation 框架解决方案所提出的)。
export AS="as -arch i386"
export CC="cc -arch i386 -framework CoreFoundation -lobjc -liconv"
我在我的 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"
...如此处所述在 Mac OS X 雪豹上但在 Mountain Lion 上运行单声道 2.10.2 mkbundle 时出现问题,我不得不这样做,以便应用程序可以在 Lion 上运行。
export AS="as -arch i386"
export CC="clang -arch i386 -mmacosx-version-min=10.6"
尝试重新安装 Mono Development Kit (MDK)。不要在 MDK 之上安装 Mono Runtime Environment (MRE)。MDK就足够了。
然后,如果您使用的是 Windows(但我猜您使用的是 OSX - 但只是提一下):您将需要一个类似 Unix 的工具链才能使 mkbundle 工作。
摘录:来自他们的网站
在 Windows 系统上,必须安装类 Unix 工具链才能使 mkbundle 工作。您可以使用 cygwin 并安装 gcc、gcc-mingw 和软件包。(原文如此)