Reputation: 5161
I'm trying to do a boost source build, via:
git clone --recursive https://github.com/boostorg/boost.git
cd boost
./bootstrap
./b2 link=shared threading=multi variant=release --without-mpi
This chokes with the following error message:
error: Name clash for '<pstage/lib>libboost_system.so.1.58.0'
error:
error: Tried to build the target twice, with property sets having
error: these incompabile properties:
error:
error: - none
error: - <address-model>64 <architecture>x86
error:
error: Please make sure to have consistent requirements for these
error: properties everywhere in your project, especially for install
error: targets.
This occurs on both the develop
and master
branch. What can be done to fix this error? Thanks in advance.
Upvotes: 10
Views: 6747
Reputation: 41
This is a bug in the current git master.
As a workaround, explicitly state the address-model and architecture options on the command line:
./b2 link=shared threading=multi variant=release --without-mpi address-model=64 architecture=x86
Upvotes: 4
Reputation: 52759
From the Boost 1.58 beta release notes:
Important Note
There is a bug with the build scripts; you have to specify the address-mode and architecture to b2. I used:
./b2 address-model=64 architecture=x86
to test this.
Adding these flags to the b2
command solves the problem without having to exclude the context
and coroutine
libraries (handy if, say, you actually use these libraries, like I do!).
Naturally, if you're building 32-bit libraries, you want to add address-model=32
instead.
Upvotes: 14
Reputation: 7768
I was able to build using the suggestion at https://stackoverflow.com/a/27885628/200985 . I'm compiling branch boost-1.57.0
, and I started compiling branch boost-1.56.0
, and it got past this point, too. To sum up, I ran
git co boost-1.57.0;
./bootstrap.sh --prefix=/home/me/builds/development;
./b2 --prefix=/home/me/builds/development -j9 --without-context --without-coroutine;
Upvotes: 3