Boost bjam 不会将编译器版本放在文件名中



过去,b2/bjam会构建像So:

的库

libboost_wserialization-gcc48-mt-d-1_60.so(Note -GCC48-(

我刚刚从git上克隆了增强,并且正在尝试使用G 8.3.0编译,但是它生成的库是命名的:

libboost_atomic-gcc-mt-d-x64-1_66.so(注意-gcc-(

i(和cmake(期望它被命名:

libboost_atomic-gcc83-mt-d-x64-1_66. (请注意-GCC83-(

构建,我做到了:

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

我尝试过谷歌搜索,但还没有发现任何暗示我做错了什么,这是我的理解 - layout =版本应该导致编译器和库名称中的版本编号...

谢谢

邮件列表中的答案:

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.htmlhttps://gitlab.kitware.com/cmake/cmake/issues/17701

最新更新