Boost Users :
Subject: Re: [Boost-users] UTF: test/included/unit_test.hpp vs test/unit_test.hpp
From: Raffi Enficiaud (raffi.enficiaud_at_[hidden])
Date: 2017-05-15 09:41:20
Le 08.05.17 à 04:25, Gavin Lambert via Boost-users a écrit :
> On 4/05/2017 15:14, Manav Bhatia via Boost-users wrote:
>> A few days ago I started using this code on Ubuntu and kept getting
>> segmentation faults with random values being returned
>> for boost::unit_test::framework::master_test_suite().argc
>> I managed to get rid of this problem by changing the included header to
>> #include <boost/test/included/unit_test.hpp>
>> I have seen the description
>> However, I am not quite able to follow why this problem occurred on
>> Ubuntu (with system boost library) when I was still linking against the
>> precompiled library (version 1.58).
> Generally those sorts of problems occur when you use a different version
> of the headers than the prebuilt libraries. Check your include and lib
> paths at build time to see whether it's finding a different version than
> you're expecting (eg. finding a local Boost instead of system Boost, or
> vice versa).
> You can also run ldd on the executable to see which version of the Boost
> shared libraries it's trying to load at runtime and whether this is the
> one you expect or not.
I second that answer :)
The way you solved it is factually incorrect as you are including the
header only UTF files and you declare the dynamic linking variant. Have
a look at the command line generated for your compiler and your linker,
you might be linking to the static version while declaring the dynamic
version with the macro.
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