[Mono-dev] compile mono on windows

Frank Fuchs fk.fuchs at googlemail.com
Wed Apr 13 02:55:06 EDT 2011

> On 12.04.2011 08:56, Frank Fuchs wrote:
> > Hi,
> > I think I finally manged to build mono (2.10.1) on windows using mingw-w64
> > (TDM build) together with the patches from here:
> > https://build.opensuse.org/package/files?package=mingw64-mono&project=windows%3Amingw%3Awin64.
> > I did end up with a libmono-2.0.a and libmono-2.0.dll.
> > What is missing in comparison to the distributed binaries is the contents of
> > $MONO/lib/mono.
> > Now I think I am a little confused about the mono/mcs compilation. As far as
> > I understood it the missing stuff would be build when building mcs. Do I
> > need a working (external) mono/mcs to build mcs? What does it take to build
> > a working combination for 64 bit? Is it sufficient to have a 64 bit mono or
> > does mcs need to take care about 32 vs. 64 bit as well? Could I just
> > complete my build with the distributed mcs?
> If you're building from a tarball, a basic mcs deployed with
> the tarball will be used to build the mcs tree. This happens
> automatically, unless you're suppressing the build with
> --disable-mcs-build. If the build is still failing then
> you should post the error messages, because otherwise we
> can't help. If the error message is something like
> "mcs is unusable", then your compiled runtime is most
> likely broken.
> If you're building from git, an existing mono installation
> is required (its "bitness" is irrelevant).
> Robert
> Ok thank you. For some strage reason mcs doe not build when I use
build-mingw32.sh, although it is enabled.
Anyway I tried to build using "make EXTERNAL_MCS= ... EXTERNAL_RUNTIME=... "
(refering to a copied Mono-2.10.1 install) which ended up with errors like:
MCS [basic] mscorlib.dll source file $PATH_MSYS/noconfig could not be found.
I think it's related to the misinterpretation of /options by MSys which
expects -options.
I tried to change all occurences onf such commands but might screwed it up
somewhere along the way.
The error is now:
MCS [basic] mscorlib.dll
Assembly\AssemblyInfo.cs(54,12) error CS8088: Your .Net Runtime does not
support 'AssemblyVersionAttribute'. Please use the latest runtime instead.
and (translated from the german output)
Unhandled Exception: System.ArgumentException: The constant does not match
the defined type.
in System.Reflection.Emit.TypeBuilder.SetConstantValue(Module module,Int32
... )
in System.CSharp.Driver.Main(String[] args)

If this is not a known error pattern please do not dig too much into it. It
might be very well my own fault.
However, I'm asking myself whether or not I could try to go with the mcs as
it is distributed for windows.
A very small "Hello world" test showed that my compiled mono seems be able
to run assemblies from the distribution, including dmcs.exe. Is this
worthwhile or is it doomed to fail?

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ximian.com/pipermail/mono-devel-list/attachments/20110413/7eb946f2/attachment.html 

More information about the Mono-devel-list mailing list