can I force linking to older libstdc++?

sew2111@columbia.edu sew2111@columbia.edu
Thu Jun 29 18:00:00 GMT 2006


Brief Description:
-I am trying to use a shared library (libxxx.1.2.so) which was
compiled on a different machine, with an older version of g++ (no
source)
-main.cpp/main.o is my test code to use this library.

Problem:
-libxxx.1.2.so seems to need an older version of libstdc++, whereas
the compiler i'm using now will not allow my code to revert to this
older libstdc++ (I have the old libstdc++.so).

Dump:

try #1:

g++ -o main /home/jstokes/dco//libxxx.1.2.so main.o
warning: libstdc++.so.5, needed by /home/jstokes/dco//libxxx.1.2.so,
may conflict with libstdc++.so.6

ldd main
libxxx.1.2.so => not found
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x04a71000)
libm.so.6 => /lib/tls/libm.so.6 (0x00aa3000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x0080a000)
libc.so.6 => /lib/tls/libc.so.6 (0x00977000)
/lib/ld-linux.so.2 (0x0095e000)

notice that libxxx is not found...weird..but the important thing is
the warning given

try #2:
g++ -o main /home/jstokes/dco//libxxx.1.2.so /usr/lib/libstdc++.so.5
main.o

ldd main
/home/jstokes/dco//libxxx.1.2.so (0x00164000) libstdc++.so.5 =>
/usr/lib/libstdc++.so.5 (0x00176000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x04a71000)
libm.so.6 => /lib/tls/libm.so.6 (0x00aa3000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x0080a000)
libc.so.6 => /lib/tls/libc.so.6 (0x00977000)
/lib/ld-linux.so.2 (0x0095e000)

now it can find libxxx properly, and i don't get the warning..but i
don't want it using to different versions of libstdc++ at the same
time!! How do i get these two programs to just use libstdc++.so.5?



More information about the Gcc-help mailing list