For the Xm lib you have

-L../lib/Xm-2.0/.libs -lXm

followed by

../../../lib/Xm-2.0/.libs/libXm.so

So if the first -L isn't correct, which appears to be the case, then the link
is picking up an installed version, from the -lXm. I think only the full path
to the .so should be in there.

On 17-Jan-01 at 06:05, Alexander Mai ([EMAIL PROTECTED]) wrote:
> My latest changes are not working too well ...
> 
> on i86-linux:
> make[3]: Entering directory
> `/u/mai/compile/lesstif/Production/clients/Motif-2.0/uil' /bin/sh
> ../../../libtool --mode=link gcc  -O4 -mcpu=pentium -Wall -Wimplicit
-Wstrict-prototypes -Wpointer-arith  -o uil  Attribute.o Callback.o
Expression.o ExpressionList.o FakeWidget.o Include.o MrmTypes.o glue.o yacc.o
lex.o main.o ../../../lib/Mrm-2.0/libMrm.la
> ../../../lib/Xm-2.0/libXm.la            -L/usr/X11R6/lib -lXt -lSM -lICE
> -lX11   gcc -O4 -mcpu=pentium -Wall -Wimplicit -Wstrict-prototypes
> -Wpointer-arith -o .libs/uil Attribute.o Callback.o Expression.o
ExpressionList.o FakeWidget.o Include.o MrmTypes.o glue.o yacc.o lex.o main.o
../../../lib/Mrm-2.0/.libs/libMrm.so -L../Xm-2.0/.libs
> -lXm ../../../lib/Xm-2.0/.libs/libXm.so -L/usr/X11R6/lib -lXt -lSM -lICE
> -lX11 -lm -L/usr/X11R6/lib -lXt -lSM -lICE -lX11 -Wl,--rpath
-Wl,/home/mai/LessTif/Motif2.0/lib
> ../../../lib/Mrm-2.0/.libs/libMrm.so: undefined reference to
> `XmCreateCSText' ../../../lib/Mrm-2.0/.libs/libMrm.so: undefined reference
> to `XmCreateScrolledCSText' collect2: ld returned 1 exit status
> make[3]: *** [uil] Error 1
> 
> 
> Similar picture on digital unix 4.0:
> /bin/sh ../../../libtool --mode=link cc  -O0 -g -std1 -warnprotos
> -scope_safe -I/home/mai/include -L/home/mai/lib -o newuil  newuil.o
../../../lib/Uil-2.0/libUil.la ../../../lib/Mrm-2.0/libMrm.la            
../../../lib/Xm-2.0/libXm.la             -lXt -lSM -lICE
> -lX11 -ldnet_stub 
> cc -O0 -g -std1 -warnprotos -scope_safe -I/home/mai/include -L/home/mai/lib
> -o .libs/newuil newuil.o ../../../lib/Uil-2.0/.libs/libUil.so
> ../../../lib/Mrm-2.0/.libs/libMrm.so -L../../lib/Xm-2.0/.libs -lXm
../../../lib/Xm-2.0/.libs/libXm.so -lXt -lSM -lICE -lX11 -ldnet_stub -lm -lXt
-lSM -lICE -lX11 -ldnet_stub -Wl,-rpath
> -Wl,/home/mai/LessTif/Motif2.0/lib
> ld:
> Warning version mismatch for shared library libXm.so
> newuil depends on version motif1.2 and libMrm.so depends on version 2.0
> creating newuil
> 
> We don't get the stuff linked correctly, even if the
>  -L../Xm-2.0/.libs in the first example is replaced by the correct path.
> 
> Ok, where are our libtool experts?
> The question  (to repeat it) has two parts:
> 
>  - how do we tell libtool that libfoo depends on some uninstalled, but 
>    just few seconds ago created by libtool library libbar?
>    Currently we do add -L../foo/.libs -lfoo to the linker command for the
>    lib 
> 
>  - how we in turn tell libtool how to link an application which
>    dependends on both?
>    Currently we add ../foo/libfoo.la to LDADD
> 
> 
> At first the libraries look fine here.
> But then the -lXm somehow picks up the real Motif lib from the system
> (my guess).
> To avoid this one could specify the file explicitly
>  ../foo/libfoo.so
> but this is non-portable (.so, etc.) %-\
> 
> --
> Alexander Mai
> [EMAIL PROTECTED]
> 
> 

Reply via email to