Повышение отладки библиотек и сборка релизов в Linux
У меня проблемы при сборке Boost Library на 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
ссылка упоминается здесь. Но я получаю сообщение об ошибке 404 страница не найдена.
Старая ссылка на Boost Build, найденная здесь, также, по-видимому, не содержит необходимых подробностей построения библиотек boost в режимах отладки и выпуска.
Заранее спасибо.
2 ответа
Как уже упоминалось в --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
вывод, который позволит вам поставить пользовательский тег на результаты. Полезно в тех случаях, когда вам нужно более короткое имя или чтобы все было как можно проще. Но будьте осторожны, поскольку пользовательские пользователи, то есть системы сборки, вряд ли будут знать, как обращаться с именами.
https://www.boost.org/doc/libs/1_62_0/tools/build/tutorial.html
debug-symbols=on variant=debug
набор параметров создает конфигурацию отладки:
<debug-symbols> on, off - Create debug symbols.
<variant> debug, release, profile - Build debug, release or profile version.
-a
опция также полезна, потому что она создает все возможные комбинации конфигурации.
Сюда
b2 -a install
покрыть все возможные потребности в форсировании.