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

use*_*650 18 c# macos mono mkbundle

我正在尝试使用Mono创建一个Mac捆绑包.当我执行:

    mkbundle file.exe --deps -o FILE
Run Code Online (Sandbox Code Playgroud)

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

    fatal error: "mono/metadata/mono-config.h" file not found
Run Code Online (Sandbox Code Playgroud)

我错过了什么吗?

Tal*_*oni 8

关键是前面的错误(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
Run Code Online (Sandbox Code Playgroud)

另外(由aiapatag提出并提出了Objective-c运行时和CoreFoundation框架解决方案).

export AS="as -arch i386"
export CC="cc -arch i386 -framework CoreFoundation -lobjc -liconv"
Run Code Online (Sandbox Code Playgroud)


小智 7

我在Mac上遇到了同样的问题.我通过设置pkg-config解决了这个问题.

export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/lib/pkgconfig:/Library/Frameworks/Mono.framework/Versions/3.0.12/lib/pkgconfig
Run Code Online (Sandbox Code Playgroud)

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

export AS="as -arch i386"
export CC="cc -arch i386"
Run Code Online (Sandbox Code Playgroud)

...如此处所述当在Mac OS X雪豹运行mono 2.10.2 mkbundle但在Mountain Lion上运行时,我不得不这样做,以便应用程序可以在Lion上运行.

export AS="as -arch i386"
export CC="clang -arch i386 -mmacosx-version-min=10.6"
Run Code Online (Sandbox Code Playgroud)


aia*_*tag 4

尝试重新安装 Mono 开发套件 (MDK)。不要在 MDK 之上安装 Mono 运行时环境 (MRE)。MDK就够了。

然后,如果您使用的是 Windows(但我猜您使用的是 OSX ——但只是提一下):您将需要一个类似 Unix 的工具链才能让 mkbundle 工作。

摘录:来自他们的网站

在 Windows 系统上,需要安装类 Unix 工具链才能使 mkbundle 工作。您可以使用 cygwin 并安装 gcc、gcc-mingw 和软件包。(原文如此)