From: Vladimir Prus (ghost_at_[hidden])
Date: 2004-12-09 05:15:50
Oliver Kullmann wrote:
>> Try running "ldd /usr/local/lib/libboost_date_time-gcc.so" and see which
>> version of libstdc++ it requires (it will say libstdc++.so.5)
>> ldd /usr/local/lib/libboost_date_time-gcc.so
> libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0x4002e000)
> libm.so.6 => /lib/i686/libm.so.6 (0x400ee000)
> libgcc_s.so.1 => /usr/local/lib/libgcc_s.so.1 (0x40111000)
> libc.so.6 => /lib/i686/libc.so.6 (0x4011b000)
> /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000)
> Here you see that it links to libstdc++.so.5 in */usr/lib* !!
Sure, that's the standard location for libraries.
> The problem is as follows:
>> ls -l /usr/lib/libstdc++.so
> lrwxrwxrwx 1 root root 18 2004-02-11 21:37
> /usr/lib/libstdc++.so -> libstdc++.so.5.0.5
>> ls -l /usr/local/lib/libstdc++.so
> lrwxrwxrwx 1 root root 18 2004-12-09 04:42
> /usr/local/lib/libstdc++.so -> libstdc++.so.6.0.3
> You see that the gcc installation put libstdc++ into /usr/local/lib, the
> default place. But Boost linked to /usr/lib/libstdc++.so, the old version.
The "/usr/local/lib" is not default place for anything, AFAICT. All
system-wide libraries installed in a regular way should go to /usr/lib.
> So it seems to me that the Boost build process is erroneous:
> gcc by default links first to libraries in /usr/local/lib, and then to
> libraries in /usr/lib (to the best of my knowledge).
If you're using gcc installed to /usr/local, then maybe you have to that the
gcc tooset about this with:
bjam -sTOOLS=gcc -sGCC_ROOT_DIRECTORY=/usr/local
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk