[Mono-dev] Compiling mono on windows for developing (not running)

Edward Ned Harvey (mono) edward.harvey.mono at clevertrove.com
Sat Apr 26 19:29:01 UTC 2014

> From: martin at my2cents.co.uk [mailto:martin at my2cents.co.uk] On Behalf
> Of Martin Thwaites
> I've been trying to get mono to compile in MD (4.3.3) on ubuntu 14.04 and
> not having much luck with that either.  If you know of a tutorial for getting
> that up and running I would grateful as that's a compromise.

I am not aware of any way to make the IDE build mono.  I *am* aware of how to build on command line, and use IDE to step through source while debugging.

You specifically mentioned ubuntu 14.4.  I recently had some difficulty building on 14.4, but fortunately somebody had already written a bug report about it, and written a workaround, and apparently, it's a common workaround that applies to a lot of platforms (as I had success using the same workaround on centos6 and ami2014.03).  Here's what I know:

This is basically a script I copy & paste for myself to repeat on different machines.  Of course, adapt to your own tastes:

git checkout mono into ~/mono

(I forget why, cannot use ~ shorthand, must use absolute path)
export BUILDDIR=/Users/eharvey/mono-build

(on most systems)
cd ~/mono ; time ( test -d $BUILDDIR && rm -rf $BUILDDIR ; mkdir -p $BUILDDIR ; ./autogen.sh --prefix=$BUILDDIR --disable-bcl-opt --enable-nls=no && make && make install && echo "" && echo "    Done" && echo "")

(ubuntu14.04 and some other systems)
cd ~/mono ; time ( test -d $BUILDDIR && rm -rf $BUILDDIR ; mkdir -p $BUILDDIR ; ./autogen.sh --prefix=$BUILDDIR --disable-bcl-opt --enable-nls=no && make get-monolite-latest && make EXTERNAL_MCS="${PWD}/mcs/class/lib/monolite/gmcs.exe" && make install && echo "" && echo "    Done" && echo "")

(Takes approx 30 minutes)

Inside Xamarin Studio, create some dumb new project. By default only a single runtime registered so the Project / Active Runtime menu item doesn't appear. I had to go to Xamarin Studio / Preferences / .NET Runtimes / Add. Add the newly built runtime environment. The system thinks a while (beachball) and then the Project / Active Runtime menu becomes available, to select my newly compiled runtime.

Go to Xamarin Studio / Preferences / Debugger. And un-check the checkbox: 
[_] Debug project code only; do not step into framework code

And now for example, I'm able to write an app with: 
RSACryptoServiceProvider myrsa = new RSACryptoServiceProvider (3072); 
myrsa.ExportParameters (includePrivateParameters: false);

And I'm able to Start Debugging. And step into the RSA code to see what it's doing internally. Hooray! :-)

More information about the Mono-devel-list mailing list