Boost logo

Boost :

From: Vladimir Prus (vladimir_at_[hidden])
Date: 2008-09-01 02:46:53

Alexander Dong Back Kim wrote:

> Hi members,
> I'm using both GCC 3.2 and 3.4 in different linux machines. The application
> uses a number of BOOST libraries such as program_options, iosterams, thread
> and system. When I compiled the application with GCC 3.4 (of course linking
> correct library files like "libboost_program_options-gcc34-mt"), it compiled
> well and works well. I did "ldd" to see what library files are linked... and
> it says...
> => /lib/tls/ (0x0048a000)
> => /usr/lib/ (0x005e8000)
> => /lib/tls/ (0x00372000)
> => /lib/ (0x00555000)
> => /lib/tls/ (0x0023e000)
> /lib/ (0x00224000)

To be pedantic, the above output has no indication that boost libraries are found,
it only says that the system libraries are found, which is hardly a surprise.

> Now, I compiled the same application and link different gcc version of boost
> library files because it uses GCC 3.2 instead. I compiled it and there was
> no compile-time error but it cannot be executed because it can't find the
> target library files. I did "ldd" for the application and now it has all the
> boost library files...
> => /lib/tls/ (0x0038d000)
> => not found
> => not found
> => not found
> => not found
> => not found
> => /usr/lib/ (0x00b8e000)
> => /lib/tls/ (0x007a6000)
> => /lib/ (0x00179000)
> => /lib/tls/ (0x00182000)
> /lib/ => /lib/ (0x00d66000)
> Both machine has the same boost 1.35. Only differences is they have
> different versions of GCC (3.2 and 3.4). Is there any idea or hints where
> this problem comes from???

This problem is caused by the fact that there's no file called neither in standard system libraries
directories (such as /usr/lib) nor in directories in LD_LIBRARY_PATH.
You have to place the libraries somewhere where they can be found.
BTW, this issue is not specific to C++ Boost -- it's just regular shared linking
thing on Linux.

- Volodya

Boost list run by bdawes at, gregod at, cpdaniel at, john at