Boost库在Linux上的调试和发布构建

时间:2019-01-22 11:05:25

标签: boost boost-build

我在使用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

问题在于,即使将变体指定为debugrelease,该构建也会使用相同的名称构建库。

每个构建步骤都会覆盖上一个命令构建的库。

如何根据here中提到的文档获取后缀为-d的调试库?

我还尝试研究提到的hereboost-build参考。 但是我没有找到错误404 页面。

here中发现的关于Boost Build的旧参考书似乎也没有必要的细节,以调试和发布两种方式构建Boost库。

谢谢。

1 个答案:

答案 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选项,可让您在结果上放置自定义标签。在您希望使用更短名称或使内容尽可能简单的情况下很有用。但要注意,由于它是自定义使用者,即构建系统,因此不太可能知道如何处理名称。