bug-libtool
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#14055: windows link problem with ".lib" files


From: Andreas Otto
Subject: bug#14055: windows link problem with ".lib" files
Date: Tue, 26 Mar 2013 16:21:48 +0100
User-agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20130307 Thunderbird/17.0.4

Hi,

additional output:

/bin/sh ../../libtool --tag=CC --mode=link /usr/bin/ccache x86_64-w64-mingw32-gcc -std=gnu99 -shared -I/home/dev1usr/Project/NHI1/theLink/tclmsgque/../libmsgque -I/cygdrive/c/Tcl/include -DMQ_IGNORE_EXTERN -g -Wall -Wcast-align -g -O2 -shared -module -avoid-version -no-undefined -L/cygdrive/c/Tcl/lib -ltcl86 -o tclmsgque.la -rpath /usr/local/lib/NHI1 tclmsgque_la-MqS_tcl.lo tclmsgque_la-misc_tcl.lo tclmsgque_la-msgque_tcl.lo tclmsgque_la-read_tcl.lo tclmsgque_la-send_tcl.lo tclmsgque_la-config_tcl.lo tclmsgque_la-service_tcl.lo tclmsgque_la-slave_tcl.lo tclmsgque_la-MqBufferS_tcl.lo tclmsgque_la-error_tcl.lo tclmsgque_la-link_tcl.lo tclmsgque_la-MqFactoryS_tcl.lo tclmsgque_la-MqDumpS_tcl.lo ../libmsgque/libtmp.la

*** Warning: linker path does not have real file for library -ltcl86.
*** 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 libtcl86 but no candidates were found. (...for file magic test)

*** Warning: libtool could not satisfy all declared inter-library
*** dependencies of module tclmsgque.  Therefore, libtool will create
*** a static module, that should work as long as the dlopening
*** application is linked with the -dlopen flag.

The Attachment has the link error ...
the important part is...

+ for search_ext in .la '$std_shrext' .so .a
+ lib=/cygdrive/c/Tcl/lib/libtcl86.la
+ test -f /cygdrive/c/Tcl/lib/libtcl86.la
+ for search_ext in .la '$std_shrext' .so .a
+ lib=/cygdrive/c/Tcl/lib/libtcl86.dll
+ test -f /cygdrive/c/Tcl/lib/libtcl86.dll
+ for search_ext in .la '$std_shrext' .so .a
+ lib=/cygdrive/c/Tcl/lib/libtcl86.so
+ test -f /cygdrive/c/Tcl/lib/libtcl86.so
+ for search_ext in .la '$std_shrext' .so .a
+ lib=/cygdrive/c/Tcl/lib/libtcl86.a
+ test -f /cygdrive/c/Tcl/lib/libtcl86.a

mfg AO


Am 26.03.2013 15:05, schrieb Peter Rosin:
On 2013-03-26 10:38, Andreas Otto wrote:
Hi,

from time to time I use my automake/libtool project to build libraries on 
windows ...
this create al least problems ...

my actual problem is, I got a tcl distrubution from activestate providing a 
libraray:

C:/Tcl/lib/tcl8.6.lib

and using the libtool command:

  /bin/sh ../../libtool --tag=CC    --mode=link /usr/bin/ccache 
x86_64-w64-mingw32-gcc -std=gnu99 -shared 
-I/home/dev1usr/Project/NHI1/theLink/tclmsgque/../libmsgque -IC:/Tcl/include  
-DMQ_IGNORE_EXTERN  -g -Wall -Wcast-align -g -O2 -shared -module -avoid-version 
-no-undefined*-LC:/Tcl/lib -ltcl86* -o tclmsgque.la -rpath /usr/local/lib/NHI1 
tclmsgque_la-MqS_tcl.lo  tclmsgque_la-misc_tcl.lo tclmsgque_la-msgque_tcl.lo  
tclmsgque_la-read_tcl.lo tclmsgque_la-send_tcl.lo  tclmsgque_la-config_tcl.lo 
tclmsgque_la-service_tcl.lo  tclmsgque_la-slave_tcl.lo 
tclmsgque_la-MqBufferS_tcl.lo  tclmsgque_la-error_tcl.lo 
tclmsgque_la-link_tcl.lo  tclmsgque_la-MqFactoryS_tcl.lo 
tclmsgque_la-MqDumpS_tcl.lo ../libmsgque/libtmp.la

with "*-LC:/Tcl/lib -ltcl86*" I got the mystic libtool error message that the 
library is NOT found ...
It would help if you quoted the error message.

using the "--debug" option give a hint ....
It would help if you shared the hint.

libtool does not serach for the "right" name ...

If I copy the file tcl86.lib to libtcl86.a in the same directory ....

=> everything works fine.

and now my question:

why does "libtool" on "windows" does NOT search for "*.lib" files
I'll try to answer when you have provided the above details.

=> enduser would be happy to save debugging hours ;-)

Hint, I use the mingw cross compiler but this is NOT the problem.
Since you are using a cross compiler (presumably still from Cygwin),
you should not feed it Windows paths, you should feed it POSIX
paths. I.e. something like "-L/cygdrive/c/Tcl/lib -ltcl86". In addition
to that, you (or the package) have specified the library before any
object files, which is not the right thing to do. Try this:

/bin/sh ../../libtool --tag=CC    --mode=link /usr/bin/ccache 
x86_64-w64-mingw32-gcc -std=gnu99 -shared 
-I/home/dev1usr/Project/NHI1/theLink/tclmsgque/../libmsgque 
-I/cygdrive/c/Tcl/include  -DMQ_IGNORE_EXTERN  -g -Wall -Wcast-align -g -O2 
-shared -module -avoid-version -no-undefined -L/cygdrive/c/Tcl/lib -o 
tclmsgque.la -rpath /usr/local/lib/NHI1 tclmsgque_la-MqS_tcl.lo  
tclmsgque_la-misc_tcl.lo tclmsgque_la-msgque_tcl.lo  tclmsgque_la-read_tcl.lo 
tclmsgque_la-send_tcl.lo  tclmsgque_la-config_tcl.lo 
tclmsgque_la-service_tcl.lo  tclmsgque_la-slave_tcl.lo 
tclmsgque_la-MqBufferS_tcl.lo  tclmsgque_la-error_tcl.lo 
tclmsgque_la-link_tcl.lo  tclmsgque_la-MqFactoryS_tcl.lo 
tclmsgque_la-MqDumpS_tcl.lo ../libmsgque/libtmp.la -ltcl86

Cheers,
Peter


Attachment: libtool_link_error.log
Description: Text document


reply via email to

[Prev in Thread] Current Thread [Next in Thread]