Hi, I am trying several days now to build a .dll on cygwin. But it only wants to build a static library :(.
What am I doing wrong? Here is what happens, this is supposed to create a dll: $ make libcw.la if /bin/bash ./libtool --mode=compile g++ -DHAVE_CONFIG_H -I./include -I./include -g -pipe -Wall -Woverloaded-virtual -Wundef -Wpointer-arith -Wwrite-strings -Werror -Winline -MT libcw_la-version.lo -MD -MP -MF ".deps/libcw_la-version.Tpo" \ -c -o libcw_la-version.lo `test -f 'version.cc' || echo './'`version.cc; \ then mv -f ".deps/libcw_la-version.Tpo" ".deps/libcw_la-version.Plo"; \ else rm -f ".deps/libcw_la-version.Tpo"; exit 1; \ fi g++ -DHAVE_CONFIG_H -I./include -I./include -g -pipe -Wall -Woverloaded-virtual -Wundef -Wpointer-arith -Wwrite-strings -Werror -Winline -MT libcw_la-version.lo -MD -MP -MF .deps/libcw_la-version.Tpo -c version.cc -DPIC -o .libs/libcw_la-version.o [ comment: the above is correctly creating a pic-object; after all - we are trying to create a dll. Note that this results in the following lines in the created libcw_la-version.lo file: pic_object='.libs/libcw_la-version.o' non_pic_object=none ] /bin/bash ./libtool --mode=link g++ -o libcw.la -rpath /usr/local/lib -version-info 0:0:0 libcw_la-version.lo llists/libllists.la crosslink/libcrosslink.la io/libio.la kernel/libkernel.la net/libnet.la [ comment: this seems correct too no? .la as output, .lo and .la as input ] libtool: link: warning: undefined symbols not allowed in i686-pc-cygwin shared libraries [ What is this? Of course I have undefined symbols: the ones of libc and libstdc++ ?! ] rm -fr .libs/libcw.a .libs/libcw.la .libs/libcw.lai rm -fr .libs/libcw.lax mkdir .libs/libcw.lax rm -fr .libs/libcw.lax/libllists.a mkdir .libs/libcw.lax/libllists.a (cd .libs/libcw.lax/libllists.a && ar x /usr/src/libcw/llists/.libs/libllists.a) rm -fr .libs/libcw.lax/libcrosslink.a mkdir .libs/libcw.lax/libcrosslink.a (cd .libs/libcw.lax/libcrosslink.a && ar x /usr/src/libcw/crosslink/.libs/libcrosslink.a) rm -fr .libs/libcw.lax/libio.a mkdir .libs/libcw.lax/libio.a (cd .libs/libcw.lax/libio.a && ar x /usr/src/libcw/io/.libs/libio.a) rm -fr .libs/libcw.lax/libkernel.a mkdir .libs/libcw.lax/libkernel.a (cd .libs/libcw.lax/libkernel.a && ar x /usr/src/libcw/kernel/.libs/libkernel.a) rm -fr .libs/libcw.lax/libnet.a mkdir .libs/libcw.lax/libnet.a (cd .libs/libcw.lax/libnet.a && ar x /usr/src/libcw/net/.libs/libnet.a) ar cru .libs/libcw.a .libs/libcw.lax/libllists.a/cbll.o .libs/libcw.lax/libllists.a/expire.o .libs/libcw.lax/libllists.a/sbll.o .libs/libcw.lax/libcrosslink.a/crosslink.o .libs/libcw.lax/libio.a/dbstreambuf.o .libs/libcw.lax/libio.a/file.o .libs/libcw.lax/libio.a/pipe.o .libs/libcw.lax/libio.a/sock.o .libs/libcw.lax/libio.a/traits.o .libs/libcw.lax/libkernel.a/debugdaemon.o .libs/libcw.lax/libkernel.a/events.o .libs/libcw.lax/libkernel.a/execve.o .libs/libcw.lax/libkernel.a/GlobalObjectManager.o .libs/libcw.lax/libkernel.a/libcw_app.o .libs/libcw.lax/libkernel.a/memleak.o .libs/libcw.lax/libkernel.a/ostream_operators.o .libs/libcw.lax/libkernel.a/select.o .libs/libcw.lax/libkernel.a/signals.o .libs/libcw.lax/libkernel.a/support.o .libs/libcw.lax/libkernel.a/timing.o .libs/libcw.lax/libnet.a/inet_support.o ranlib .libs/libcw.a rm -fr .libs/libcw.lax creating libcw.la (cd .libs && rm -f libcw.la && ln -s ../libcw.la libcw.la) Ok, I am totally lost ... Why does it suddenly create a .libs/libcw.a ? Where is the .dll? Also, this *.a is not usable because the libcw_la-version.lo is NOT linked in: that only refers to a pic-object, not a non-pic-object. The result is a useless (broken) static library. Can someone please tell me what I am doing wrong? I suppose you need more info, but I don't know what :) -- Carlo Wood <[EMAIL PROTECTED]> _______________________________________________ Libtool mailing list [EMAIL PROTECTED] http://lists.gnu.org/mailman/listinfo/libtool
