[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
How to build a .dll on cygwin?
From: |
Carlo Wood |
Subject: |
How to build a .dll on cygwin? |
Date: |
Fri, 2 Jul 2004 01:45:07 +0200 |
User-agent: |
Mutt/1.4.1i |
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 <address@hidden>
- How to build a .dll on cygwin?,
Carlo Wood <=