LINUX.ORG.RU

А что конкретно у тебя не получается из того, что предлагает официальная документация?

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

Как например установить $BOOST_PATH=""?
Так, что бы можно было писать:

#include <boost/asio/async_result.hpp>

И где тогда, должна оказаться папка boost?

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

Причем тут мать ? -_-

На винфаке спроси

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

Не обращай внимания. Можно и folder, и папка, и каталог, и директория. Тут на лоре уже неоднократные срачи были по этому поводу :) но всегда найдутся ревностые красноглазики, которые кидаются на «виндовое» понятие «папка».

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

Нет ни одной причины разговаривать с анонимусами.

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

Тебе либо про export читать, либо про ключ -I компилятора

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

А чем ты собираешь свой проект и в чем пишешь?

а boost собрать просто, читай инструкцию у него в корне, там все написано.

И что в арче нет в стандартных пакетах его?

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

В чем проблема, качаем буст в исходниках, с сайта буста. Запускаем ./bootstrap.sh(или bat для винды) Потом ./b2

После чего в папке stage/lib находим либы для линковки. Копируем папку с исходниками в проект, и подключаем там нужные .h по относительным путям. Настраиваем линковку. Собираем проект. По идее все.

Dudraug ★★★★★
()

Вопрос первый: Зачем его собирать? С большой вероятностью тебе достаточно взять только часть его заголовков, т.к. большая часть буста - header library.

invy ★★★★★
()
Последнее исправление: invy (всего исправлений: 2)
Ответ на: комментарий от invy

Вопрос первый: Зачем его собирать? С большой вероятностью тебе достаточно взять только часть его заголовков.

Некоторые вещи все же нуждаются в сборке.

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

Хмм, не хотелось бы тоскать за собой boost каждый раз, нужна определенная папка к который доступ будет:
include <boost/*...>

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

Разве нельзя положить в папку с STL?

Не надо так делать. Ну или ставить уже собранный с помощью пакетного менеджера. Собирать имхо надо если хочешь сделать что-то вроде моего варианта. Но учти, буст обычно статически линкуется. Ибо нет никакой гарантии, что он на конечной системе стоит. А требовать буст в зависимостей вроде не очень и принято (динамическая линковка).

Если хочешь глобально буст иметь - ставь собранный.

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

А ты уверен, что тебе буст нужен? Ты вообще с С++ знаком? Хотя бы из винды? С разработкой в линуксе ты не знаком, это уже понятно... Но хотя бы мертвого страуса прочитал?

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

Страуструпп - Принципы и практика программирования на С++ (2016)
Теперь так:

[continue@LenovoG780 programming in C++]$ g++ -std=c++11 -o async async.c++ 
/tmp/cccakX81.o:async.c++:function __static_initialization_and_destruction_0(int, int): error: undefined reference to 'boost::system::generic_category()'
/tmp/cccakX81.o:async.c++:function __static_initialization_and_destruction_0(int, int): error: undefined reference to 'boost::system::generic_category()'
/tmp/cccakX81.o:async.c++:function __static_initialization_and_destruction_0(int, int): error: undefined reference to 'boost::system::system_category()'
/tmp/cccakX81.o:async.c++:function boost::thread_exception::thread_exception(int, char const*): error: undefined reference to 'boost::system::system_category()'
/tmp/cccakX81.o:async.c++:function boost::detail::thread_data_base::thread_data_base(): error: undefined reference to 'vtable for boost::detail::thread_data_base'
/usr/local/bin/ld: the vtable symbol may be undefined because the class is missing its key function
/tmp/cccakX81.o:async.c++:function boost::thread::start_thread(): error: undefined reference to 'boost::thread::start_thread_noexcept()'
/tmp/cccakX81.o:async.c++:function boost::thread::~thread(): error: undefined reference to 'boost::thread::detach()'
/tmp/cccakX81.o:async.c++:function boost::thread::get_id() const: error: undefined reference to 'boost::thread::native_handle()'
/tmp/cccakX81.o:async.c++:function boost::thread::join(): error: undefined reference to 'boost::thread::join_noexcept()'
/tmp/cccakX81.o:async.c++:function boost::detail::thread_data<void (*)()>::~thread_data(): error: undefined reference to 'boost::detail::thread_data_base::~thread_data_base()'
/tmp/cccakX81.o:async.c++:typeinfo for boost::detail::thread_data<void (*)()>: error: undefined reference to 'typeinfo for boost::detail::thread_data_base'
collect2: ошибка: выполнение ld завершилось с кодом возврата 1

P.S: boost нужен для сокетов, а смысл читать книгу, если практики - не будет?

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

P.S: boost нужен для сокетов, а смысл читать книгу, если практики - не будет?

надо с чего-то полегчек начать, чем с сокетов. У тебя простейшие стандартные объекты не компилируются.

Dudraug ★★★★★
()
Ответ на: комментарий от ossa
[continue@LenovoG780 programming in C++]$ g++ -o async async.c++ -lboost_system
/tmp/ccERjzLv.o:async.c++:function boost::detail::thread_data_base::thread_data_base(): error: undefined reference to 'vtable for boost::detail::thread_data_base'
/usr/local/bin/ld: the vtable symbol may be undefined because the class is missing its key function
/tmp/ccERjzLv.o:async.c++:function boost::thread::start_thread(): error: undefined reference to 'boost::thread::start_thread_noexcept()'
/tmp/ccERjzLv.o:async.c++:function boost::thread::~thread(): error: undefined reference to 'boost::thread::detach()'
/tmp/ccERjzLv.o:async.c++:function boost::thread::get_id() const: error: undefined reference to 'boost::thread::native_handle()'
/tmp/ccERjzLv.o:async.c++:function boost::thread::join(): error: undefined reference to 'boost::thread::join_noexcept()'
/tmp/ccERjzLv.o:async.c++:function boost::detail::thread_data<void (*)()>::~thread_data(): error: undefined reference to 'boost::detail::thread_data_base::~thread_data_base()'
/tmp/ccERjzLv.o:async.c++:typeinfo for boost::detail::thread_data<void (*)()>: error: undefined reference to 'typeinfo for boost::detail::thread_data_base'
collect2: ошибка: выполнение ld завершилось с кодом возврата 1
continue
() автор топика
Ответ на: комментарий от continue

lboost_thread очевидно же

зачем тебе, кстати, бустовый тред, если есть уже std::thread?

ossa ★★
()
Последнее исправление: ossa (всего исправлений: 1)

Вместо чтения доков и гугла, ты увеличил энтропию ЛОРа. Лучше смени ник.

Заранее пожалуйста?

anonymous
()

OMG. какой к херам буст и асио. Читать основы, постигать инструмент (сиреч компилятор) и уже потом только за бусты, да еще и с самостоятельной сборкой. Да и сокеты тоже...руками, все сначала руками, пока понималка не отрастет.

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

Копируем папку с исходниками в проект

не надо так делать. буст - не мелкая библиотечка и копирование исходников буста идея крайне неудачная. и вообще не надо в свои микропроектики копировать весь опенсорц. отучаться надо от таких костыльных решений. в никсах для этого есть система хранения хэдеров и библиотек и в норме она всех устраивает.
думаю, что в любом дистрибе буст и так есть и его собирать не надо. тем более, что ТС явно не в теме, если официальных инструкций с сайта буста ему не хватило.

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

и вообще не надо в свои микропроектики копировать весь опенсорц.

Ну поставлять проект с необходимыми исходниками для статической сборки правильное решение. При чем буст имеет кучу версий. Для того, что бы быть уверенным в корректности работы твоего приложения на любой платформе надо что бы использовалась одна оттестированная версия буста.

Поэтому статик линк+копирование сорцов - норм решение имхо.

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

юзера не интересует, какой у тебя локально буст стоит. ему нужно, чтобы собиралось с тем, который у него в дистрибутиве. и, по-моему, это правильно и логично. поэтому при выпуске нового стабильного буста (а это случается не так уж часто) и при обновлении дистрибутивов разработчики просто проверяют свои программы с той версией, которая поставляется пользователям.

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

g++ -O2 app.cc -I/path/to/includes -L/path/to/libs -llibs -lto -llink -o app

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

поэтому при выпуске нового стабильного буста (а это случается не так уж часто) и при обновлении дистрибутивов разработчики просто проверяют свои программы с той версией, которая поставляется пользователям.

Лишняя и ненужная работа. А для комерческих проектов так и затратная.

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

Юзеру нужен или рабочий бинарник. Или сорцы, которые просто собираются. Если ты поставляешь свои сорцы юзеру (заказчику) с бустом конкретной версии, то все собираться будет всегда и везде.

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

Лишняя и ненужная работа. А для комерческих проектов так и затратная.

как раз вполне нормальная поддержка дистрибутивов.

Если ты поставляешь свои сорцы юзеру (заказчику) с бустом конкретной версии, то все собираться будет всегда и везде.

глубокое заблуждение. буст очень зависит от процесса стандартизации и он постепенно мигрирует в стандартную библиотеку. и старые версии буста новые компиляторы не соберут, например. просто запутаются в вызовах, потому что они перешли в стандарт. такое в бусте случалось много раз и это постоянный процесс.

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