我在使用gcc-8在Ubuntu 16.04 LTS上构建Boost库时遇到问题。
当前,我需要同时构建Debug和Release构建的库。
以下是我用来构建调试构建库的命令:
$ ./bootstrap.sh --with-libraries=all --with-python-version=3.5 --with-icu="/usr/include/x86_64-linux-gnu/"
###################
# For Debug build #
###################
$ ./b2 toolset=gcc-8 cxxflags="-std=c++17" variant=debug
#####################
# For Release build #
#####################
$ ./b2 toolset=gcc-8 cxxflags="-std=c++17" variant=release
问题在于,即使将变体指定为debug
或release
,该构建也会使用相同的名称构建库。
每个构建步骤都会覆盖上一个命令构建的库。
如何根据here中提到的文档获取后缀为-d
的调试库?
我还尝试研究提到的here的boost-build
参考。
但是我没有找到错误404 页面。
here中发现的关于Boost Build的旧参考书似乎也没有必要的细节,以调试和发布两种方式构建Boost库。
谢谢。
答案 0 :(得分:1)
如--help
信息中所述,在Unix类型的系统上,--layout
的默认值为system
,它没有添加允许多种构建版本共存的标记:>
--layout=<layout> Determine whether to choose library names and header
locations such that multiple versions of Boost or
multiple compilers can be used on the same system.
-- versioned -- Names of boost binaries include
the Boost version number, name and version of
the compiler and encoded build properties. Boost
headers are installed in a subdirectory of
<HDRDIR> whose name contains the Boost version
number.
-- tagged -- Names of boost binaries include the
encoded build properties such as variant and
threading, but do not including compiler name
and version, or Boost version. This option is
useful if you build several variants of Boost,
using the same compiler.
-- system -- Binaries names do not include the
Boost version number or the name and version
number of the compiler. Boost headers are
installed directly into <HDRDIR>. This option is
intended for system integrators building
distribution packages.
The default value is 'versioned' on Windows, and
'system' on Unix.
您可以使用--layout=tagged
或--layout=versioned
选项在构建时允许多种变体。
在--buildid=ID
输出中也列出了一个--help
选项,可让您在结果上放置自定义标签。在您希望使用更短名称或使内容尽可能简单的情况下很有用。但要注意,由于它是自定义使用者,即构建系统,因此不太可能知道如何处理名称。