Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Компиляция boost под Windows, Можно ли проще bat-ник сделать? 
:(
    Опции темы
EvilsInterrupt
Дата 9.4.2012, 21:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Executables research
***


Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 14.7.2007
Где: Железнодорожный, МО, Россия

Репутация: 2
Всего: 9



Компилирую этот Boost впервые и поэтому зарылся в документацию так, что аж не видно меня.
Решил упростить жизнь на будущее и написал батник. Вот его содержимое:

Код

@rem Win32
.\b2.exe --without-wave --without-python --without-graph_parallel --without-graph stage --stagedir=stage32 toolset=msvc variant=debug link=static threading=multi runtime-link=static
.\b2.exe --without-wave --without-python --without-graph_parallel --without-graph stage --stagedir=stage32 toolset=msvc variant=release link=static threading=multi runtime-link=static

@rem x64
.\b2.exe --without-wave --without-python --without-graph_parallel --without-graph stage --stagedir=stage64 toolset=msvc variant=debug link=static threading=multi runtime-link=static address-model=64
.\b2.exe --without-wave --without-python --without-graph_parallel --without-graph stage --stagedir=stage64 toolset=msvc variant=release link=static threading=multi runtime-link=static address-model=64


можно ли его как-нить упростить?

PM MAIL WWW ICQ Jabber   Вверх
boostcoder
Дата 9.4.2012, 22:15 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



уже раз 20 обсуждалось. половину из них, я давал эту ссылку: http://forum.try-catch.ru/index.php?topic=286.0

модераторы, может закрепить инструкцию по сборке уже хоть раз? smile 
PM WWW   Вверх
EvilsInterrupt
Дата 20.4.2012, 15:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Executables research
***


Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 14.7.2007
Где: Железнодорожный, МО, Россия

Репутация: 2
Всего: 9



Цитата(boostcoder @  9.4.2012,  23:15 Найти цитируемый пост)
уже раз 20 обсуждалось. половину из них, я давал эту ссылку: http://forum.try-catch.ru/index.php?topic=286.0


В статье по этой ссылке не освящены вопросы:
1) Что если мне не нужна какая-либо библиотека? (опция --without)
2) Нет упоминания про 64-бита. Т.е. это аналогично 32-битному или что-то еще нужно?

PM MAIL WWW ICQ Jabber   Вверх
boostcoder
Дата 20.4.2012, 16:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(EvilsInterrupt @  20.4.2012,  15:16 Найти цитируемый пост)
В статье по этой ссылке не освящены вопросы

в той статье, есть волшебная ссылка на доку по boost.build:
Цитата

Описание ключей для bjam Вы можете найти тут.

Исправлю.
PM WWW   Вверх
EvilsInterrupt
Дата 21.4.2012, 21:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Executables research
***


Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 14.7.2007
Где: Железнодорожный, МО, Россия

Репутация: 2
Всего: 9



Цитата(boostcoder @  20.4.2012,  17:25 Найти цитируемый пост)
в той статье, есть волшебная ссылка на доку по boost.build:

Основная цель того что Вы написали статью про boost?
На мой взгляд Вы стремились облегчить порог вхождения в использование boost разве не так? Думаю, что да. Как вывод так и следует продолжать. Если что-то кому-то непонятно, то имеет смысл подумать "может действительно это раскрыть. Потому что существует вероятность что еще кому-то не понятно и это следует раскрыть!

ИМХО

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

Вот некоторый список:

1) Как скомпилировать под 64-бита?
2) Достаточно ли для того чтобы ответить на п.1. применить "address-model=64"?
3) Может еще надо архитектуру x86 указывать или она по умолчанию?
4) Обязательно ли указывать "toolset=msvc" может он по дефолту?

Еще:
Попутно пришлось загуглить как в MSVC 2010 студии прописывать буст в глобальные инклуды и либы, ведь это теперь отличается от того что было в 2008. Этот нюанс тоже можно отметить хотя бы ссылкой "Для 2010 решение искать тут".

Если чтото писать не хочется, то нужно ввести ограничения статьи словами "Вам нужно уметь..."


PM MAIL WWW ICQ Jabber   Вверх
boostcoder
Дата 22.4.2012, 17:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(EvilsInterrupt @  21.4.2012,  21:55 Найти цитируемый пост)
1) Как скомпилировать под 64-бита?
2) Достаточно ли для того чтобы ответить на п.1. применить "address-model=64"?

Цитата

address-model=64

если в системе только 64битный компилятор - по умолчанию соберется 64ех битная версия.

Цитата(EvilsInterrupt @  21.4.2012,  21:55 Найти цитируемый пост)
3) Может еще надо архитектуру x86 указывать или она по умолчанию?

указывать не нужно. она по умолчанию.

Цитата(EvilsInterrupt @  21.4.2012,  21:55 Найти цитируемый пост)
4) Обязательно ли указывать "toolset=msvc" может он по дефолту?

он по дефолту.
если используете другой компилятор - нужно указывать.

Цитата(EvilsInterrupt @  21.4.2012,  21:55 Найти цитируемый пост)
Попутно пришлось загуглить как в MSVC 2010 студии прописывать буст в глобальные инклуды и либы, ведь это теперь отличается от того что было в 2008.

я в той статье описал установку boost в каталоги MSVC. так что ничего прописывать/указывать не нужно.

PM WWW   Вверх
Randajad
Дата 22.4.2012, 19:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 295
Регистрация: 15.3.2012

Репутация: 8
Всего: 8



Как сложно. У меня такой батник:

cd /D c:\boost
bootstrap
bjam toolset=msvc variant=release link=static runtime-link=static optimization=speed inlining=full cxxflags="/GL" linkflags="/LTCG" filesystem system program_options signals date_time

Собирает только необходимые либы + LTCG.
PM MAIL   Вверх
EvilsInterrupt
Дата 22.4.2012, 21:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Executables research
***


Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 14.7.2007
Где: Железнодорожный, МО, Россия

Репутация: 2
Всего: 9



Randajad
С вашими опциями можно как Release так и Debug версии?
PM MAIL WWW ICQ Jabber   Вверх
Randajad
Дата 23.4.2012, 08:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 295
Регистрация: 15.3.2012

Репутация: 8
Всего: 8



Ага, variant=debug указать.

PM MAIL   Вверх
boostcoder
Дата 27.7.2012, 20:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



еще один важный момент, который я уже наверное в 30ый раз объясняю: не все из подбиблиотек boost собираются в динамические/статические библиотеки.
дело в том, что большая часть этих подбиблиотек - header-only библиотеки.
не пытайтесь собрать их как динамические/статические библиотеки! не пытайтесь заставить bjam сделать это!
понять, какие библиотеки являются header-only, вы можете перейдя по ссылке документации конкретной версии(к примеру: http://www.boost.org/doc/libs/1_50_0/), и кликнув по табличке в самом начале страницы по категории Header Only Libraries.

спасибо за внимание.


Это сообщение отредактировал(а) boostcoder - 27.7.2012, 20:57
PM WWW   Вверх
EvilsInterrupt
Дата 24.1.2013, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Executables research
***


Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 14.7.2007
Где: Железнодорожный, МО, Россия

Репутация: 2
Всего: 9



К сожалению, Google Chrome не может найти страницу forum.try-catch.ru.
PM MAIL WWW ICQ Jabber   Вверх
boostcoder
Дата 24.1.2013, 12:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



вечером выложу батник сюда.

PM WWW   Вверх
boostcoder
Дата 25.1.2013, 21:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



x32:
Цитата

@echo off

set MINGWDIR=d:/mingw32

rem check if mingw path correct
if not exist %MINGWDIR%/bin/mingw32-make.exe (
   echo bad mingw directory!
   exit /b 1
) else (
   echo mingw directory ok.
)

bjam ^
    -j4 ^
    toolset=gcc ^
    variant=release ^
    threading=multi ^
    link=static ^
    runtime-link=static ^
    --without-mpi ^
    --without-math ^
    --without-random ^
    --without-graph ^
    --without-graph_parallel ^
    --without-python ^
    --without-wave ^
    --layout=system ^
    --libdir=%MINGWDIR%/i686-w64-mingw32/lib ^
    --includedir=%MINGWDIR%/i686-w64-mingw32/include ^
    install

pause

x64:
Цитата

@echo off

set MINGWDIR=d:/mingw64

rem check if mingw path correct
if not exist %MINGWDIR%/bin/mingw32-make.exe (
   echo bad mingw directory!
   exit /b 1
) else (
   echo mingw directory ok.
)

bjam ^
   -j4 ^
    toolset=gcc ^
    variant=release ^
    threading=multi ^
    link=static ^
    runtime-link=static ^
    --without-mpi ^
    --without-math ^
    --without-random ^
    --without-graph ^
    --without-graph_parallel ^
    --without-python ^
    --without-wave ^
    --layout=system ^
   --libdir=%MINGWDIR%/x86_64-w64-mingw32/lib ^
   --includedir=%MINGWDIR%/x86_64-w64-mingw32/include ^
   install

pause


PM WWW   Вверх
NEVOLSHEBNIK
Дата 25.2.2013, 11:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 13.7.2007

Репутация: нет
Всего: нет



Скачал с оф. сайта boost_1_53_0.tar.bz2. При сборке  bjam вылезает ошибка
***** ПРЕВЫШЕНИЕ РАЗМЕРОВ СТЕКА *****
***** ПРИ ВЫПОЛНЕНИИ РЕКУРСИИ В ПАКЕТНОМ РЕЖИМЕ *****
Глубина рекурсии=1240, Использование стека 90проц.
***** ПАКЕТНАЯ ОБРАБОТКА ПРЕРВАНА *****

Оказалось, что концы строк build.bat  в юниксовом формате(lf), котоый мой xp не понимает. smile 
Так что если качать, то лучше 7z архив, или придется изменять в файле build.bat формат конца строк. 

Это сообщение отредактировал(а) NEVOLSHEBNIK - 25.2.2013, 11:17
PM MAIL   Вверх
VSB
Дата 4.3.2013, 00:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 23.8.2007

Репутация: 1
Всего: 2



boostcoder, создавал отдельную тему, но никто не ответил.
Пишу в Visual Studio 2012, собираю обычно тулсетом v110, но иногда требуется v110_xp. Как скомпилировать boost под оба тулсета, и выбирать правильные либы при сменен тулсета?
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1714 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.