I have written some console \"Hello world\"-like app. and have followed c# cywgwin mono mkbundle windows 7 - cannot compile file answer. But I have got:
$ mk
First of all, prepare development environment:
C:\Soft\Mono
".bash --login -i
" command).$HOME/.bashrc
" with "nano" ("nano ~/.bashrc
"). Don't use editors which don't preserve end-of-line-s ("CR", "LF", "CR/LF" or other), or it will corrupt the file!Add following lines to the end of the file:
export PKG_CONFIG_PATH=/cygdrive/c/Soft/Mono/lib/pkgconfig
export PATH=$PATH:/cygdrive/c/Soft/Mono/bin
Restart Cygwin Bash shell.
After that you can compile your assemblies with "mkbundle":
mkbundle -c -o host.c -oo bundle.o --deps YourAssembly.exe
". You also may optionally pass "-z
" to compress resultant bundle. You should get "host.c" and "bundle.o" files.In "host.c" you should remove "_WIN32" "branch" (except "#include
" one). It doesn't work. You may do it just by adding "#undef _WIN32
" right after following lines in it:
#ifdef _WIN32
#include
#endif
So you'll get:
#ifdef _WIN32
#include
#endif
#undef _WIN32
Perform the following command: "gcc -mno-cygwin -o ResultantBundle.exe -Wall host.c
`pkg-config --cflags --libs mono-2|dos2unix`
bundle.o
". If you added a -z additional argument in step 2, you must add a -lz additional argument in this step.