Повышение отладки библиотек и сборка релизов в Linux - PullRequest
0 голосов
/ 22 января 2019

У меня проблемы при сборке библиотеки Boost в Ubuntu 16.04 LTS с gcc-8.

В настоящее время мне нужно собрать библиотеки 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, сборка создает библиотеки с одинаковыми именами.

Каждый шаг сборки перезаписывает библиотеки, созданные предыдущей командой.

Как я могу получить библиотеки отладки с вероятным суффиксом -d согласно упомянутой документации здесь ?

Я также попытался посмотреть на упомянутое упоминание boost-build 1020 * здесь . Но я получаю Ошибка 404 Страница не найдена.

Старая ссылка на Boost Build, найденная здесь , также, похоже, не содержит необходимых деталей для создания библиотек boost в режимах отладки и выпуска.

Заранее спасибо.

1 Ответ

0 голосов
/ 18 марта 2019

Как упомянуто в информации --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, которая позволяетВы ставите пользовательский тег на результаты.Полезно в тех случаях, когда вам нужно более короткое имя или чтобы все было как можно проще.Но будьте осторожны, поскольку пользовательские пользователи, то есть системы сборки, вряд ли будут знать, как обращаться с именами.

...