[Mono-dev] windows build of a mono embedded app [part 2]
Jonathan Shore
jonathan.shore at gmail.com
Mon Dec 19 12:49:47 EST 2011
So I got around some compilation issues (thanks Robert) in building an embedded mono application on windows. I resolved my build issues by explicitly using MinGW g++ as opposed to cygwin's. Although cygwin g++ appears to be some variant of MinGW, was not able to get it to work. Moving to MinGW was easy enough.
The application presents itself as a DLL which is then loaded into R. The ultimate linkage looks like:
c:/MinGW/bin/g++.exe -shared -s -static-libgcc -m32 CSObject.o RDebug.o RUtils.o RWrap.o ToC.o ToCLR.o ToR.o -o rDotNet.dll -Wl,-headerpad_max_install_names -Lc:/Dev/hf/src/Libraries/CApi/bin/Debug -Lc:/Dev/hf/src/Libraries/CApi/lib/win32 -lCApi -lmono-2.0 -lm "-Lc:/Program Files/R/R-2.14.0/bin/i386" -lR
This successfully creates a dll. The problem is that when trying to load this dll into R, complains that cannot find libmono-2.0. As I do most of my work on OSX and Linux, have not yet determined what governs the DLL search path. Also, libmono-2.0.dll.a does not appear to be a traditional dll, so suspect this is a loading mechanism specific to MinGW compiled DLLs.
In any case, I tried another approach of linking against libmono-2.0.a, rather than the shared-lib. This resulted in a list of unmatched symbols from the windows core API and socket libraries.
Questions:
- what windows libraries and/or options do I need to add to the MinGW g++ link line to resolve dependencies for the static library
- if static not advisable, what can I do to avoid the problem where libmono -2.0 is not found?
Thanks!
Jonathan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ximian.com/pipermail/mono-devel-list/attachments/20111219/7cc4ebdd/attachment-0001.html
More information about the Mono-devel-list
mailing list