crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в сборка буста...
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Iron Bug Дата 5.8.2009, 12:24
  ну, в самом простом случае примерно так:

bjam --toolset=msvc-8.0 --builddir="D:\Temp\BoostBuild" address-model=32 link=static runtime-link=static threading=multi stage debug release


перед сборкой нужно также запустить bootstrap - он создаст необходимую структуру для сборки.
собрать (исходники для сборки bjam поставляются с бустом и находятся в папке ./tools/jam) или скачать готовый bjam нужной версии.

соответственно, в строке для bjam надо указать необходимые опции линковки (static/shared), версии для debug или release (либо обе), рабочий каталог для сборки, нужную "потокобезопасность" (слово-то какое на русском языке! :) ) - то есть однопоточные/многопоточные версии библиотек, размерность шины (32-64 бита). 'stage' (значение по умолчанию) в данном случае указывает, что готовые библиотеки будут скопированы в локальную папку ./stage относительно корня исходников (можно указать, куда их складывать)
для скорости можно ещё добавить количество одновременно выполняемых задач (если машина многопроцессорная): -jN, где N- количество задач.

версия компилятора также указывается. для MSVC можно указать просто msvc либо msvc-X.0, если на машине установлено несколько компиляторов. для gcc указывается gcc, для остальных я так не помню, надо читать доки. это всё есть на сайте буста.

однако у буста есть много дополнительных библиотек, включающихся опционально (поддержка regex, mpi, некоторые графические библиотеки), а также есть возможность отключать некоторые модули (я, например, собираю буст без поддержки питона, т.к. я им не пользуюсь). но по деталям надо читать доки на сами библиотеки и либо собирать их отдельно, либо включать необходимые опции в общую строку сборки.

да, вроде бы для некоторых библиотек для MSVC там прилагаются готовые 'солюшены' (я не мастер русскоязычного программирования!) для сборки, но я их не пробовала применять, так что советовать не буду.
AD Дата 4.8.2009, 11:10
 
Цитата(Iron Bug @ 4.8.2009, 12:07) *
сейчас строка для bjam выглядит как указано у меня. видимо, это какой-то устаревший пост. для выбора компилятора устанавливается опция toolset

А можно еще раз выложить корректную строку bjam для msvc? Заранее спасибо. Сборки - статическая, динамическая, релизная. Ну и дебаг-сборку для динамической сборки тоже можно, для проверки.
Iron Bug Дата 4.8.2009, 11:07
 
Цитата(Andrew Selivanov @ 30.7.2009, 14:03) *
PS: Очевидный баг с runtime-link

тут дело не в самой ICU. для сборки ICU нужны ещё некоторые переменные среды, я их просто не указала. у меня тут проблемы не возникает. но лезет то самое ограничение буста на совместную сборку static и shared, даже в том случае, если нет никакого явного указания на shared. это бага.

Цитата(AD @ 4.8.2009, 12:26) *
А для студии в этой строке надо заменить только gcc на msvc?

сейчас строка для bjam выглядит как указано у меня. видимо, это какой-то устаревший пост. для выбора компилятора устанавливается опция toolset
AD Дата 4.8.2009, 9:26
 
Цитата(Tonal @ 18.4.2008, 11:15) *
У меня сейчас в батничке (boost_mingw.cmd) такая строчка:
bjam --v2 gcc release debug threading=multi,single link=static,shared stage --with-%1

А для студии в этой строке надо заменить только gcc на msvc?
Andrew Selivanov Дата 30.7.2009, 11:03
 
Цитата(Iron Bug @ 30.7.2009, 8:53) *
если бы там было всё так просто... там капец сколько ссылок по разным файлам туда-сюда и с ходу понять что ему не нравится, не удалось.
я перерыла рассылки буста, там эта проблема всплывала.
проблема в ICU. я без неё не могу работать, мне нужен юникод...
снижение требований (сборка только статической линковки) с такой строкой:
bjam --toolset=msvc-8.0 --builddir="D:\Temp\BoostBuild" address-model=32 link=static runtime-link=static threading=multi stage debug release --with-regex -sHAVE_ICU=1

не помогла: лезет та же ошибка, хотя нигде явно нет упоминания shared.
на shared-link мне не хочется переходить по ряду причин.


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


bjam --toolset=msvc-8.0 --builddir="D:\Temp\BoostBuild" address-model=32 link=static threading=multi stage debug release --with-regex -sHAVE_ICU=1

Цитата
C:\boost\boost_1_39_0>bjam --toolset=msvc-8.0 --builddir="D:\Temp\BoostBuild" address-model=32 link=static threading=multi stage debug release --with-regex -sHAVE_ICU=1
Note: Building Boost.Regex with Unicode/ICU support enabled
Using ICU in
...patience...
...found 540 targets...
...updating 8 targets...
compile-c-c++ bin.v2\libs\regex\build\msvc-8.0\debug\address-model-32\link-static\threading-multi\icu.obj
icu.cpp
.\boost/regex/icu.hpp(22) : fatal error C1083: Cannot open include file: 'unicode/utypes.h': No such file or directory
...не суть важно...


PS: Очевидный баг с runtime-link
Iron Bug Дата 30.7.2009, 7:53
  если бы там было всё так просто... там капец сколько ссылок по разным файлам туда-сюда и с ходу понять что ему не нравится, не удалось.
я перерыла рассылки буста, там эта проблема всплывала.
проблема в ICU. я без неё не могу работать, мне нужен юникод...
снижение требований (сборка только статической линковки) с такой строкой:
bjam --toolset=msvc-8.0 --builddir="D:\Temp\BoostBuild" address-model=32 link=static runtime-link=static threading=multi stage debug release --with-regex -sHAVE_ICU=1

не помогла: лезет та же ошибка, хотя нигде явно нет упоминания shared.
на shared-link мне не хочется переходить по ряду причин.


заявила багу разработчикам буста. буду ждать обновлений.
Litkevich Yuriy Дата 29.7.2009, 15:09
 
Цитата
link=shared together with runtime-link=static
ну если это вообще осуществимо, может стоит найти это сообщение в коде и посмотреть нет ли там какого-нибудь макроса поблизости, который разрешает подобную сборку.


П.С. С бустом не знаком :)
Iron Bug Дата 29.7.2009, 15:01
  Прорвавшись через горы работы, я вот добралась до обновления буста до 1.39.0. Думала по-быстренькому качнуть да собрать, но какая-то засада со сборкой вышла...

Собираю такой строкой (в общем, ничего особенного, 38-й так же собирался, всё без проблем):

bjam -j2 -sHAVE_ICU=1 --without-python --build-dir="D:\Temp\BoostBuild" --toolset=msvc-8.0 --build-type=complete --address-model=32 stage


Все ICU-шные макросы и пути указаны и т.п.

Проблема в build-type=complete (хочу собрать все варианты).

Однако при этом bjam выдаёт ошибку:

error: link=shared together with runtime-link=static is not allowed
error: such property combination is either impossible
error: or too dangerious to be of any use


Времени особо ковыряться нет, найти ничего полезного на этот счёт в сети с ходу не удалось. Может, кто-то уже напарывался на такую "фичу"?
Andrew Selivanov Дата 28.7.2009, 16:46
 
Цитата(AD @ 28.7.2009, 14:38) *
Цитата(Andrew Selivanov @ 28.7.2009, 14:25) *
Вот например: http://www.boost.org/doc/libs/1_39_0/more/...rted/index.html там внизу справа для Windows или *Nix.
CygMing можно считать *Nix :)
Спасибо.
Cygwin, наверное! :) Ну это я знаю, что Cygwin - эмуляция ОС. :)

CygMing - это Cygwin и Mingw - чтобы два раза не писать. Лень матушка :) Не моё изобретение, подсмотрено где то на забугре...
Влад Дата 28.7.2009, 15:27
  Там все bjam'ом делается. Почитай доку, там доходчиво все описано. Единственная неприятность - время.... пока bjam отработает, можешь сходить пообедать :)
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 28.3.2024, 22:25