Hello,
As part of my cross-platform project I'm building a shared object. This
shared object depends on various libraries from the ICU project (
http://www.icu-project.org). To distill the problem I'm having, I'll focus
on just one of the ICU libraries.

In Makefile.am I have

libforxxq_la_LDFLAGS = -version-info $(LIBFORXXQ_VERSION) -rpath $(libdir)
-no-undefined
libforxxq_la_LIBADD = -L/usr/local/lib -lcygicuuc42

In /usr/local/lib I have:

cygicuuc42.dll
libicuuc42.dll.a

I really want libtool to create a DLL, but it won't. Here's what libtool
says every time:

*** Warning: linker path does not have real file for library -lcygicuuc42.
*** I have the capability to make that library automatically link in when
*** you link to this library.  But I can only do this if you have a
*** shared version of the library, which you do not appear to have
*** because I did check the linker path looking for a file starting
*** with libcygicuuc42 but no candidates were found. (...for file magic
test)

And it repeats this message for every ICU library, and then proceeds to link
my library statically. If I put the fully qualified name of
/usr/local/lib/cygicuuc42.dll in the LIBADD line, then libtool ignores the
library completely and complains about all the undefined symbols that live
in the library that it just ignored.

Also, when I create an executable in the same project that depends on ICU
libraries, and I pass exactly the same linker flags, "-L/usr/local/lib
-lcygicuuc42", then it works fine. So, one may be tempted to complain that
the name of the library doesn't start with "lib", but obviously the linker
doesn't care.

I'm using libtool 2.2.6a.

Thanks for any help,
Will
_______________________________________________
http://lists.gnu.org/mailman/listinfo/libtool

Reply via email to