On Mon Oct 23 20:01:51 2000, jlim wrote:
>
> I found what the problem is ... the following initialization in SoBase.c++ is
> not completed:
>
> SbString SoBase::instancePrefix = "+";
>
> likely because I'm using 'ld' to create libInventor.so, rather than 'g++'.
> However, when I changed the compile options as follows:
>
> /usr/bin/g++ -L../libimage -L../libFL/src -shared -Wl,--whole-archive
> -L/usr/X11R6/lib -L$IVROOT/usr/lib libInventor.a
> -ljpeg -limage -lFL -lX11 -ldl -lm -lGLU -lGL -o libInventor.so
>
> I get:
>
> /usr/bin/ld: internal error ldlang.c 3669
> collect2: ld returned 1 exit status
> make: *** [libInventor.so] Error 1
Never mind ... I found out what the problem is: I had to specify
-Wl,--no-whole-archive after libInventor.a, otherwise the linker would try to
include every library that followed. I just wish the man page had a note about
that.
In case anyone's interested, I found the answer at
http://sources.redhat.com/ml/binutils/2000-03/msg00259.html
Jonathan Lim _ Silicon Graphics _ Mountain View
GPS Graphics Computer Systems CA, USA
|