LINUX.ORG.RU

Как собирать boost

 , , ,


1

3

Приветствую. Как собирается boost в Linux?
Пытаюсь вот так:

./b2 toolset=gcc --build-type=complete address-model=64 -j4 --stagedir=/usr/local/lib64/boost

Но при таком варианте ошибки:
error: Cannot use --layout=system with --build-type complete.
error: Please use either --layout=versioned or --layout=tagged
error: if you wish to build multiple variants.
error: Note that --layout=system is used by default on Unix starting with Boost 1.40.

Как собственно собрать? (прощу не кидать документацию с boost.org, так как у меня плохо с английскими языком. :) )
Заранее спасибо!

как-то так

emerge boost
anonymous
()

так как у меня плохо с английскими языком
плохо с английскими языком

Закрой консоль, удали Линакс.

MuZHiK-2 ★★★★
()
Ответ на: комментарий от continue

Не логично. Большая часть boost'а не требует сборки и является header-library. Т.е. берешь хеадеры, указываешь путь и радуешься.

invy ★★★★★
()
Ответ на: комментарий от invy

А линковать будем с libastral? Объектные файлы тоже нужны, ну и запускать программу надо - откуда она код брать будет в памяти?

mystery ★★
()
Ответ на: комментарий от mystery

А линковать будем с libastral? Объектные файлы тоже нужны

Для чего? Повторяю: «header only». Вся имплементация в заголовках.

Дока:

3 Header-Only Libraries

The first thing many people want to know is, “how do I build Boost?” The good news is that often, there's nothing to build.

Nothing to Build?

Most Boost libraries are header-only: they consist entirely of header files containing templates and inline functions, and require no separately-compiled library binaries or special treatment when linking.

invy ★★★★★
()
Ответ на: комментарий от continue

да в манах все, че там собирать то
если бинарный дистр - так уже все есть для сборки, только сорсы свои подставь

mystery ★★
()

Как собственно собрать?

Взять из OBS?

dinn ★★★★★
()
Ответ на: комментарий от Stil

В 2010-м я тут только новости читал. В каждой кто-нибудь да писал: «в толксах уже обсудили».

i-rinat ★★★★★
()

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

Оно же чистым английским пишет: В Unix'ах, начиная с версии 1.40, по дефолту --layout=system, но --layout=system не работает вместе с --build-type complete. Поэтому, при указании --build-type complete нужно указать одно из 2-х: или --layout=versioned, или --layout=tagged.

saahriktu ★★★★★
()
Ответ на: комментарий от i-rinat

А я смотрю, что развели тут бардак, уже докатились до переводов мануала по сборке буста. Боюсь запускать Убанту, вдруг там команды в консоли на русском вводить надо.

MuZHiK-2 ★★★★
()
Ответ на: комментарий от invy

Вся имплементация в заголовках.

При этом половина бустовых библиотек зависят от boost::system, которая ни разу не header-only.

anonymous
()
Ответ на: комментарий от mystery

А линковать будем с libastral? Объектные файлы тоже нужны, ну и запускать программу надо - откуда она код брать будет в памяти?

Так весь код в хедерах, на шаблонах.

Dudraug ★★★★★
()
Ответ на: комментарий от anonymous

При этом половина бустовых библиотек зависят от boost::system, которая ни разу не header-only.

та что не хедер онли. Скорее всего всякие asio и thread.

Dudraug ★★★★★
()
Ответ на: комментарий от Dudraug

Не так и мало. Есть документация, почему еще никто в нее не посмотрел - не пойму.

http://www.boost.org/doc/libs/1_60_0/more/getting_started/unix-variants.html#...

Строго компиляются:
    Boost.Chrono
    Boost.Context
    Boost.Filesystem
    Boost.GraphParallel
    Boost.IOStreams
    Boost.Locale
    Boost.MPI
    Boost.ProgramOptions
    Boost.Python
    Boost.Regex
    Boost.Serialization
    Boost.Signals
    Boost.System
    Boost.Thread
    Boost.Timer
    Boost.Wave

Опционально можно компилять:
    Boost.DateTime
    Boost.Graph
    Boost.Math
    Boost.Random
    Boost.Test
    Boost.Exception 

И, соответственно, все что зависит от них, например, asio. Странно, что они не перечисленны в том списке, наверно специально, что бы поддерживать миф о том, что boost можно не компилять, header only, bla-bla-bla.

Если бы там мало надо было компилять, что же он тогда шуршит минут 15 при сборке? Понятно, что выдрать отдельные хедеры можно, но они потянут половину буста: с одной стороны, то, что нужно обязательно компилять; а другая часть - это preprocessor-сотоварищи.

PS Буст элементарно собирается по документации, иногда свежии версии в определенном окружении могут не собираться, лечится взятием более стабильной версии. Мой поинт в том, что не надо кроить - тащите буст целиком в c++ проект, это норма.

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.