c# - mkbundle en Mac con Mono: no se encontró el archivo “mono/metadata/mono-config.h”
macos (3)
Estoy tratando de crear un paquete de Mac con Mono. Cuando ejecuto:
mkbundle file.exe --deps -o FILE
Me sale esto durante la compilación:
fatal error: "mono/metadata/mono-config.h" file not found
¿Me estoy perdiendo de algo?
Intente reinstalar el Kit de desarrollo Mono (MDK). No instale Mono Runtime Environment (MRE) sobre MDK. MDK será suficiente.
Luego, si estás usando Windows (pero supongo que estás en OSX, pero solo por mencionar): necesitarás una cadena de herramientas tipo Unix para que mkbundle funcione.
Extracto: de su sitio.
En los sistemas Windows, es necesario tener un conjunto de herramientas similar a Unix para que mkbundle funcione. Puede usar cygwin''s e instalar gcc, gcc-mingw y como paquetes. (sic)
La clave es el error anterior ( sh: pkg-config: command not found
), tenga en cuenta que pkg-config se almacena en ''/Library/Frameworks/Mono.framework/Commands''.
Preponga la carpeta "/Library/Frameworks/Mono.framework/Commands" a su variable PATH:
export PATH=/Library/Frameworks/Mono.framework/Commands:$PATH
Además (según lo propuesto por aiapatag y el objetivo-c runtime y la solución de marco CoreFoundation propuesta aquí ).
export AS="as -arch i386"
export CC="cc -arch i386 -framework CoreFoundation -lobjc -liconv"
Tuve este mismo problema en mi Mac. Lo resolví configurando pkg-config.
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/lib/pkgconfig:/Library/Frameworks/Mono.framework/Versions/3.0.12/lib/pkgconfig
Solo un aviso, para Mac tienes que ...
export AS="as -arch i386"
export CC="cc -arch i386"
... como se indica aquí Un problema al ejecutar mono 2.10.2 mkbundle en Mac OS X snow leopard pero en Mountain Lion, tuve que hacer esto para que la aplicación pudiera ejecutarse en Lion.
export AS="as -arch i386"
export CC="clang -arch i386 -mmacosx-version-min=10.6"