Boost bjam не помещает версию компилятора в имя файла - PullRequest
1 голос
/ 30 апреля 2019

В прошлом b2 / bjam создавал библиотеки с такими именами:

libboost_wserialization-gcc48-mt-d-1_60.so (примечание -gcc48 -)

Я только что клонировал boost из git и пытаюсь скомпилировать с G ++ 8.3.0, но генерируемая библиотека называется:

libboost_atomic-gcc-mt-d-x64-1_66.so (обратите внимание на -gcc -)

Я (и CMake) ожидал, что его назовут:

libboost_atomic-gcc83-mt-d-x64-1_66.so (обратите внимание на -gcc83 -)

Для сборки я сделал:

./bootstrap.sh --with-libraries="atomic" --prefix=`pwd`/install
./b2 --layout=versioned link=shared variant=debug threading=multi cflags=-fPIC cxxflags=-fPIC

Я попробовал поискать в Google, но не нашел ничего, что указывало бы на то, что я сделал что-то не так, я понимаю, что --layout = versioned должен привести к компилятору И номеру версии в имени библиотеки ...

Спасибо

1 Ответ

0 голосов
/ 01 мая 2019

Ответ из списка рассылки:

Possibly, it's related to the change in GCC 5+ versioning.
This was accommodated in Boost.Build in October 2018
https://github.com/boostorg/build/pull/349
that is, in Boost 1.69
(boostorg/build should use milestones for issues, IMO)


BTW, there are also CMake's issues in FindCMake.cmake
related to the compiler  and architecture tag. So, you may have to
specify  Boost_COMPILER and Boost_ARCHITECTURE hints
in order to help FindBoost.cmake recognise versioned names.

https://lists.boost.org/Archives/boost/2019/04/246127.php

Совет по обходному пути: https://cmake.org/pipermail/cmake/2018-October/068459.html https://gitlab.kitware.com/cmake/cmake/issues/17701

...