I haven't really understood what happens when a dll is built with cygwin. dlltool generates the .def file and the exports.o used in the next gcc step. See http://www.gnu.org/software/binutils/manual/html_chapter/binutils_13.html http://www.cygwin.com/cygwin-ug-net/dll.html
I was able to get a libmemutil.dll without errors by: gcc -mno-cygwin -mwindows -std=c99 -c libmemutil.c dlltool -z libmeutil.def --export-all-symbols -e exports.o -l libmemutil.lib libmemutil.o gcc -shared -mno-cygwin -mwindows libmemutil.o exports.o -o libmemutil.dll A while ago, when I made the dlls for elephant 0.6.0, my first try was MSVC, guided by http://bc.tech.coop/blog/041007.html However, the available free MSVC appeared to have no preset dll-project any more. I had to try compiler switches ... and found cygwin easier. This should mean that not every lisp-on-windows-user has MSVC installed (and is able to use it. cygwin is easy to install). Best regards, Frank > -----Ursprüngliche Nachricht----- > Von: Elephant bugs and development <elephant-devel@common-lisp.net> > Gesendet: 19.02.07 21:26:09 > An: Elephant bugs and development <elephant-devel@common-lisp.net> > Betreff: Re: [elephant-devel] Testing > Thanks for trying that. Do you know if there's a way with the cygwin > gcc compiler to use a .def file instead of generating a .o with the > exports? I'm pretty sure MSVC has one. We'll also need a set of > build commands for MSVC... > > I suspect we may have broken the build of libmemutil when we included > sys/types to get access to u_int64 and u_int32, etc. Without a > local system to play with I'm not sure I can debug this. I guess the > thing to do is look at db.h and sys/types to try to figure out what > was intended and whether they're compatible. > > I'll see about getting access to a Windows box to try to reproduce > and test these things on my side. > > Thanks, > Ian > > On Feb 19, 2007, at 2:09 PM, Frank Schorr wrote: > > > > > gcc -shared -mno-cygwin -mwindows -std=c99 --export-all-symbols > > libberkeley-db.def libberkeley-db.c -o libberkeley-db.dll > > > > produces > > > > cc1: error: unrecognized command line option "-fexport-all-symbols" > > > > Further: > > > > gcc -mno-cygwin -mwindows -c -Wall -std=c99 -L/c/Programme/Oracle/ > > Berkeley\ DB\ 4.5.20/lib/ -I/c/Programme/Oracle/Berkeley\ DB\ > > 4.5.20/include/ libberkeley-db.c > > > > produces > > > > In file included from libberkeley-db.c:165: > > /c/Programme/Oracle/Berkeley DB 4.5.20/include/db.h:99: error: > > conflicting types > > for 'ssize_t' > > /usr/lib/gcc/i686-pc-mingw32/3.4.4/../../../../i686-pc-mingw32/ > > include/sys/types > > .h:104: error: previous declaration of 'ssize_t' was here > > libberkeley-db.c: In function `case_cmp': > > libberkeley-db.c:1233: warning: implicit declaration of function > > `_strnicmp' > > > > Hope this can help > > Please let me know what to do next. > > Frank > > __________________________________________________________________________ Erweitern Sie FreeMail zu einem noch leistungsstärkeren E-Mail-Postfach! Mehr Infos unter http://freemail.web.de/home/landingpad/?mc=021131 _______________________________________________ elephant-devel site list elephant-devel@common-lisp.net http://common-lisp.net/mailman/listinfo/elephant-devel