[Mono-list] Building Mono on Windows

Giles Thomas giles.thomas at resolversystems.com
Mon May 24 14:13:56 EDT 2010

Hi all,

I'm trying to build Mono on Windows, and have hit a problem which I'm 
struggling to work my way around -- I'd be grateful for any help.

Here's the error message:

make[8]: Entering directory `/usr/src/mono/mcs/tools/gacutil'
Creating ../../build/deps/gacutil.exe.response ...
MCS     [basic] gacutil.exe
The assembly mscorlib.dll was not found or could not be loaded.
It should have been installed in the 
mono\2.0\mscorlib.dll' directory.
make[8]: *** [../../class/lib/basic/gacutil.exe] Error 1

There don't appear to have been any problems at the point earlier in the 
build when it was making mscorlib.dll, and I can see that there do 
appear to be targets in the makefile there that would copy the DLL to 
somewhere appropriate-looking, but it doesn't look like those targets 
are being built.  Here's the build output from the relevant directory:

make[7]: Entering directory `/usr/src/mono/mcs/class/corlib'
Creating ../../build/deps/basic_corlib.dll.makefrag ...
make[7]: Leaving directory `/usr/src/mono/mcs/class/corlib'
make[7]: Entering directory `/usr/src/mono/mcs/class/corlib'
make all-local
make[8]: Entering directory `/usr/src/mono/mcs/class/corlib'
Creating ../../build/deps/basic_corlib.dll.response ...
/bin/sh.exe ./../../mkinstalldirs ../../class/lib/basic/tmp/
mkdir -p -- ../../class/lib/basic/tmp/
touch ../../class/lib/basic/tmp//.stamp
MCS     [basic] mscorlib.dll
System.Reflection.Emit\PropertyBuilder.cs(63,36): warning CS0414: The 
private fi
eld `System.Reflection.Emit.PropertyBuilder.callingConvention' is 
assigned but i
ts value is never used
System.Runtime.Remoting.Contexts\Context.cs(67,22): warning CS0649: 
Field `Syste
m.Runtime.Remoting.Contexts.Context.frozen' is never assigned to, and 
will alway
s have its default value `false'
System.Runtime.Remoting.Messaging\ReturnMessage.cs(45,21): warning 
CS0414: The p
rivate field 
`System.Runtime.Remoting.Messaging.ReturnMessage._outArgsCount' is
assigned but its value is never used
System.Security.Permissions\KeyContainerPermission.cs(38,69): warning 
CS0649: Fi
eld `System.Security.Permissions.KeyContainerPermission._accessEntries' 
is never
 assigned to, and will always have its default value `null'
Compilation succeeded - 4 warning(s)
:  -R ../../class/lib/basic/tmp/mscorlib.dll ./../../class/mono.snk
:  -v ../../class/lib/basic/mscorlib.dll
make[8]: Leaving directory `/usr/src/mono/mcs/class/corlib'
make[7]: Leaving directory `/usr/src/mono/mcs/class/corlib'

Here's a bit more detail about what I've done so far, in case any of 
it's relevant.

I'm following the instructions on this excellent (but, I think, slightly 
out of date) blog post: 
<http://shana.worldofcoding.com/en/mono_cygwin_tutorial.html>, which is 
linked from the Mono website.

* I created a fresh Cygwin install, with the packages described, with 
the path set up appropriately for the new packaged Mono install location.
* I checked out the mono and mcs repositories from 
svn://anonsvn.mono-project.com/source/trunk/ into /usr/src/mono in a 
freshly-created Cygwin system.
* I installed make 3.80 from the Mono website -- it needed libintl2 in 
addition to the other Cygwin packages mentioned in the blog post.  (Now 
that Cygwin has 3.81 in its package repo, I imagine that this might no 
longer be necessary, but I felt it was worth sticking with what was 
meant to work...)
* I ran ./autogen.sh --prefix=/usr/local in /usr/src/mono/ -- it 
initially gave a bunch of errors, apparently due to DOS line endings in 
eglib/autogen.sh.  However, I wasn't sure if these were expected...
* ...so I ran make, and got "mv: cannot stat `t-es.gmo': No such file or 
* Google pointed me here 
so I installed gettext-devel as advised.
* This fixed that problem (thanks, Robert Jordan!) and a new autogen 
followed by a make got further, now bombing out with "configure: 
WARNING: no configuration information is in eglib".
* This was almost certainly caused by the DOS line endings in 
eglib/autogen.sh meaning that no Makefile was generated there by 
autogen, so I converted that file to use Unix line endings.  (If it's 
worth checking this fixed version in, I'm happy to do so if anyone can 
point me in the right direction.)
* I re-ran autogen, which didn't give errors in eglib this time, and ran 
* I got the error reported at the start of this email, and spend some 
time trying to work out what was happening vs what was meant to be 
happening, and got nowhere.

So, any help would be very much appreciated!

Best regards,

Giles Thomas
giles.thomas at resolversystems.com
+44 (0) 20 3051 2751

17a Clerkenwell Road, London EC1M 5RD, UK
VAT No.: GB 893 5643 79
Registered in England and Wales as company number 5467329.
Registered address: 843 Finchley Road, London NW11 8NA, UK

More information about the Mono-list mailing list