LINUX.ORG.RU

И снова установка boost


0

1

Товарищи, вчера целый день потратил на то, чтобы на две операционки поставить данную библиотеку. С виндой проблем нет, а вот с линуксом появились. Скажите, что я делаю неправильно? Версия 1.51

Открыл офф сайт и по списку пошел

1. Скачал

2. Выполнил ./bootstrap.sh

3. Выполнил ./b2

4. Появившуюся папку stage/libs добавил в перенные среды

Если указывать компилятору путь к каждой библиотеке, то все норм, но это ни разу не хорошо. Что нужно сделать (еще/по-другому), чтобы при компиляции можно было писать, например -lboost_thread или -lboost_system?

Пардон за такой УГ вопрос, но блин, пока проблемы с основами.


А что за дистрибутив? В deb apt-get install libboost-dev ; или я не понял что ты хочешь.

Если указывать компилятору путь к каждой библиотеке

Зачем?

z00ke ()

-L/path/to/your/boost/lib добавь к флагам g++.

Или поставь бустовые либы из репозитория дистрибутива, если версии позволят.

p.s. решение нагуглилось менее чем за минуту: http://www.network-theory.co.uk/docs/gccintro/gccintro_21.html

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

alt linux

ненене... рассматривается случай, когда интернета нет на ОС. Имеется только скаченный архив.

Указывать путь, чтобы скомпилировать с этой библиотекой, по другому, просто в свойсвах -lboost_... не удается. В том то и вопрос, как сделать по-людски?

Burns ()
Ответ на: комментарий от quiet_readonly

Указывал путь к либам, к инклудам при компиляции, в одном из hpp вылетело миллион ошибок (видимо библиотек не видит). Теперь обнаружился еще один интересный факт.

сделал у себя в корне, где правильно установлен boost,

find ./ -name «libboost*»

в папке usr/lib64 они все найдены.

На ОС, в которую пытаюсь поставить, та же команда выводит количество библиотек раза в два меньше и нужных мне boost_thread там нет. Что в данной ситуации cделать?

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

Проще линковать твою мсвежесобранную дирректорию lib через -L, я так делал когда версия из репов не подходила (в проекте была свежее): собрал нужную версию. Потом g++ -L/.../lib -lboost... xxx.cpp

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

Данный совет я учел. Остался вопрос, почему созданы не все библиотеки? Неужели в версии 1.51 решили их сократить? Нет... может просто на ту ОС не компилятся (она принципиально старая, новую установить пока нельзя), но блин... какая же разница то. Попробую установить в виртуалку, если будет все норм, будет очень печально в плане использования буста

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

да! именно так. в той ОС тупо не собирается куча библиотек. Переформулируем вопрос

Используется gcc 3.2.1. Очень хочется воспользоваться boost::thread. Каким образом?

Burns ()

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

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

Используется gcc 3.2.1. Очень хочется воспользоваться boost::thread. Каким образом?

Современный буст не скомпилируется таким старым компилятором, а при попытке подключения «продвинутых» хидеров почти наверняка появяся ошибки. Использовать готовую бинарную версию, скорее всего, также не получится из-за разных используемых libstdc++ (поменялась в gcc-3.4). Так что либо ты обновляешь компилятор, либо всю систему. Настоятельно рекомендую второй вариант.

red_eyed_peguin ()

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

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

Наверное еще есть вариант использовать старую версию буста.

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

фанатик чего? буста чтоли? не угодил тем, что сборка простейшего приложения из 20 cpp файлов укладывает 4-ядерный xeon на лопатки, что даже мышь не двигается, и компиляет полчаса.

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

Это проблема не буста, а разработчиков. Ну во-первых весь буст никто тащить не заставляет, есть bcp. Во-вторых большая часть буста это хидер-онли.

Так что это скорее показатель быдло-кодеров, а не проблем буста.

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

И да, то что даже мышь не двигается - это проблема ЛИНУКСА. Это ваш 12309 любимый. На винде буст целиком даже на более медленных машинах собирается почти незаметно для пользователя.

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

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

я его теперь качаю уже собранный) чтобы не собирать усе

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

Я загнал 12309 в самый темный угол системы, какой только нашелся. Его почти не видно. Как я этого добился, спросите вы? Да просто поставил 12-поточный 6-головый процессор, 24 гектара рамы и SSD. Но и при этом он нет-нет да и вылезет раз в месяц.

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

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

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

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

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

1. используй нормальную систему сборки (cmake)

2. ставь буст в хомовик

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

т.е. предлагаете перейти на венду?

Т.е. я предлагаю не обвинять хороший инструмент в говенности. В твоих тормозах он не виноват.

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

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

Лечи систему. У тебя что-то точно не так. Не может проект на 20 cpp собираться на 4 ядернике 20 минут. Не может. Хотя может сам проект так написан... Что там мега закрученные шаблоны, которые создаются из мега-закрученных макросов. Но это опять проблема кодеров, а не буста.

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

У меня вот тут на реальном проекте с использованием gSoap генерируется файл gSoap.c или SoapStub.c, не помню точно, так вот он 11мб весит. Мало того, что этот файлик пару минут компилится, так еще и роняет сборку с компилятором на виртуалке с 512мб оперативки. Так что нечего винить буст.

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

Т.е. я предлагаю не обвинять хороший инструмент в говенности. В твоих тормозах он не виноват.

насчет того, что он хороший, и что тормоза мои — можно поспорить.

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

насчет того, что он хороший, и что тормоза мои — можно поспорить.

Ситуация когда при сборке система вешается, что даже мышкой пошевелить нормальна? Нет! И в этом виноват не буст.

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

Лечи систему.

я это делаю путем избегания приложений использующих буст. система здорова.

У тебя что-то точно не так. Не может проект на 20 cpp собираться на 4 ядернике 20 минут.

я мог немного преувеличить. но ты можешь попробовать сам — возьми, к примеру, qbittorrent, и посмотри сколько и как он будет собираться. и будет ли тормозить при этом система. мне пришлось прервать просмотр фильма во время сборки. но в итоге окончания сборки не дождался все равно.

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

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

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

У меня вот тут на реальном проекте с использованием gSoap генерируется файл gSoap.c или SoapStub.c, не помню точно, так вот он 11мб весит. Мало того, что этот файлик пару минут компилится, так еще и роняет сборку с компилятором на виртуалке с 512мб оперативки. Так что нечего винить буст.

ну так почувствуй разницу — у тебя сишный файл 11 мб компилится 2 минуты, а в qbittorrent мелкие cpp файлы компилятся столько же.

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

Ситуация когда при сборке система вешается, что даже мышкой пошевелить нормальна? Нет! И в этом виноват не буст.

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

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

я это делаю путем избегания приложений использующих буст. система здорова.

facepalm.jpg Линуксойды совсем упоротые пошли. А собранное приложение тоже тормозит с бустом? Или ты кайф от сборки получаешь?

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

что сборка значительно более крупных сишных проектов с -j8 не тормозит систему

Значит диск меньше дергается.

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

которые тормозят компиляцию в десятки и сотни раз.

Домашняя машина вообще слабопредназначена для компиляции же. Зачем компилировать на домашней машине?

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

ну так почувствуй разницу — у тебя сишный файл 11 мб компилится 2 минуты

Так потому что возможно мелкий файл разворачивается на большой. Очевидно же.

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

А собранное приложение тоже тормозит с бустом? Или ты кайф от сборки получаешь?

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

Зачем компилировать на домашней машине?

у меня домашняя машина — dell precision p690 (рабочая станция). я программист, и дома тоже работаю над хобби-проектами. в данном конкретном случае, компилировать затем, что линуксоиды-разработчики почему-то собирают бинарные сборки своего софта только под винду и макось, а для линукса отдают только исходники. когда хочется попробовать свежую версию проги - остается только компилять.

Так потому что возможно мелкий файл разворачивается на большой. Очевидно же.

это как-то решает проблему тормозной сборки проектов использующих буст? нет? ну и о чем спорить тогда?

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

когда хочется попробовать свежую версию проги - остается только компилять

Ну значит надо терпеть, такое не очень часто бывает, чтобы нужная софтина, да на бусте, да новая версия. Можно и потерпеть маленько. Ну или тупо ставить все из репозиториев своего дистра и пофиг на новизну. Частая компиляция на домашней машине попахивает... красноглазием и ФГМом.

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

Я правда у себя использую винду, ибо сырость и багованность линуха меня достала уже.

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

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

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

Ну значит надо терпеть, такое не очень часто бывает, чтобы нужная софтина, да на бусте, да новая версия. Можно и потерпеть маленько.

что именно терпеть? софтина оказалась ненужной, именно из-за буста.

Ну или тупо ставить все из репозиториев своего дистра и пофиг на новизну.

предыдущую версию уже видел, хотел посмотреть именно новую версию.

Частая компиляция на домашней машине попахивает... красноглазием и ФГМом.

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

Я правда у себя использую винду, ибо сырость и багованность линуха меня достала уже.

так с этого и надо было начинать.

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

у меня насчет C++ вообще и буста в частности несколько другое мнение. на работе занимаюсь разработкой игр под 3 основные платформы, на C++. буст и qt не используем, и прекрасно себя чувствуем.

p.s. тут наверное стоит уточнить.. если бы использовали буст или qt — проекты скорее всего вообще не взлетели. я про говнявость буст не на ровном месте заговорил в первом сообщении.

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

что именно терпеть? софтина оказалась ненужной, именно из-за буста.

То есть она тебе нужна была, чтобы собрать ее?=))) Обычно людям софтины нужны, чтобы ими пользоваться, а не что бы их компилять.

предыдущую версию уже видел, хотел посмотреть именно новую версию.

Еще раз - раз хочешь новую версию глянуть, то можно и потерпеть пока комилится. Сходить попить чаю например, или погулять. Еще раз. Задача пересборки софта для домашнего ПО, тем более ПО с использованием буста не есть регулярная задача, один раз в полгода можно и потерпеть 20 минут.

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

Ну так это уже разработка,а тут придется мириться. Можешь использовать для разработки FreeBSD говорят там нет 12309. Ну или купить себе слабенький б.у. комп для сборки софта. С 12309 рано или поздно ты и без буста поимеешь проблем с ним.

у меня насчет C++ вообще и буста в частности несколько другое мнение. на работе занимаюсь разработкой игр под 3 основные платформы, на C++.

А что используете? Просто интересно.

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

То есть она тебе нужна была, чтобы собрать ее?=))) Обычно людям софтины нужны, чтобы ими пользоваться, а не что бы их компилять.

есть другие торрент клиенты. раньше использовал utorrent, но он с недавних пор чего-то стал глюкавый в свежих версиях wine, поэтому пришлось искать замену. остановился на transmission-gtk. есть косяки, в связи с переходом на gtk3 появились дополнительные проблемы, но в целом работает удовлетворительно. если за неделю не выявлю существенных косяков — мож даже попробую допиливать то чего не хватает.

Еще раз - раз хочешь новую версию глянуть, то можно и потерпеть пока комилится.

я хотел в это время смотреть кино. но комп стал невменяемо тормозить. я ж писал :)

Сходить попить чаю например, или погулять.

как раз только пришел с прогулки, уже покурил, и допил чай.

один раз в полгода можно и потерпеть 20 минут.

а можно и не терпеть.

Можешь использовать для разработки FreeBSD говорят там нет 12309.

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

Ну или купить себе слабенький б.у. комп для сборки софта. С 12309 рано или поздно ты и без буста поимеешь проблем с ним.

у меня и так дома 2 десктопа, 2 ноута и нетбук. куда еще?

А что используете? Просто интересно.

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

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

смотря для чего.

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

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

для сокетов, тредов, сериализаторов свои велосипеды. я вообще сомневаюсь, что в бусте есть поддержка тредов и сокетов xbox360 и ps3. они конечно похожи на вендовые и линуховые, соотв, но отличия есть.

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

нет конечно зачем они там

в том-то все и дело, что незачем. даже если бы были — никто бы не заметил. как и их отсутствие :)

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

У меня цомпиляция барахла на бусте даже мой нетбук не укладывает

vasily_pupkin ★★★★★ ()

man apt-cache apt-get

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