|
Boost Users : |
From: Guenther Stattenberger (g.stattenberger_at_[hidden])
Date: 2008-04-18 02:21:22
Hi,
I have some strange errors when cross-compiling some of the boost
libraries for QNX on a windows host: According to the Jamfile,
the filesystem library includes boost system in the linking stage
NOT as a library (via e.g. -lboost_system-mt-d) but as a (shared)
object. This has the effect, that somehow the current path of the
libboost_system-mt-d.so file (e.g. bin.v2\libs\system\build\qcc\
debug\target-os-qnx\threadapi-pthread\threading-multi)
is inserted into the filesystem library. Naturally, after moving
the libraries to the QNX target this path isn't valid any longer.
The runtime the complains "Could not find library ...". If I rename
libboost_system-mt-d.so to have the path mentioned above prepended
(not as a path, but really the filename, containing the backslashes)
everything works fine.
As a first workaround I decided to remove boost_system from the
linking of boost_filesystem in the Jamfile and specify
-lboost_system-mt-d in the link of my executable. This works fine,
but unfortunately only up to the first exception. The program now
gets aborted during unwind of the exception.
The question now is: could somebody please indicate, why the
boost_system library is not linked via the -l switch, and what
is wrong trying to do this. Another solution might be to convince
the linker not to include the compile-time path of the .so file
but I was not successful trying this. Any help would be greatly
appreciated.
Thanks,
Guenther
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net