[Mono-list] Re: [Mono-devel-list] Building embed sample or cilc generated code on Windows

Paolo Molaro lupus@ximian.com
Thu, 12 Jun 2003 17:38:34 +0200


On 06/10/03 Candace Bain wrote:
> I'm working on a proof of concept application that will need to call
> from a C++ command line application into a C# object running under mono.
> For performance testing I'll need to run the same app the same way on
> both Linux and Windows.  I've been looking at the embed sample
> application under /mono/samples/embed and the code that the cilc test
> generates under /mcs/tools/cilc/generated, both of these work as
> expected for me when I compile and run them on Linux.  I'm not able to
> compile either of them on Windows.  The instructions for teste.c in
> embed are to run:
> 
> gcc -o teste teste.c `pkg-config --cflags --libs mono` -lm
> 
> And the Makefile that cilc generates contains:
> 
> gcc -Wall -fpic -shared `pkg-config --cflags --libs glib-2.0 mono`
> -lpthread *.c -o libdemo.so

Those instructions are for unixy kind of systems.
I think on windows you'll have to add at least -mno-cygwin to gcc.

> If I run pkg-config --cflags --libs glib-2.0 mono manually it works and
> returns:
> 
> -IC:/cygwin/users/candace/install/include
> -I/users/candace/install/include/glib-2.0
> -I/users/candace/install/lib/glib-2.0/include  -Wl,--export-dynamic
> -LC:/cygwin/users/candace/install/lib -L/users/candace/install/lib
> -lmono -lm -lgmodule-2.0 -lglib-2.0 -lintl -liconv
> 
> >From the errors I'm getting (can't find mono/io-layer/wapi.h, etc) it
> seems clear to me that I need to use some specific header include paths
> and defines for Windows, but I haven't been able to get a combination
> that works yet.  Does anyone have a Makefile I could use to compile the
> embed sample or cilc generated test on Windows, or if not does anyone
> have pointers to where I could gather this information?

The only header from io-layer that shuld be installed is io-layer.h:
check you have installed it somewhere.
That header uses 
#if defined(__WIN32__)
to include the windows headers on windows, instead of wapi.h etc.
So it may be that the compiler doesn't define __WIN32__, seems strange
though. Hope this helps.


lupus

-- 
-----------------------------------------------------------------
lupus@debian.org                                     debian/rules
lupus@ximian.com                             Monkeys do it better