Boost под C++ Builder 6
От: Аноним  
Дата: 07.03.12 18:15
Оценка:
Здравствуйте.

Пытаюсь собрать Boost под Borland C++ Builder 6.
Boost версии boost_1_37_0. Если верить документации на сайте буста — последний который работает под шестым билдером (http://www.boost.org/users/history/version_1_37_0.html).

Долго вообще ничего не выходило. Вообще никак не компилировалось. Нашёл единственную подходящую тему: http://rsdn.ru/forum/delphi/2629979.aspx
Автор: be_cool
Дата: 22.08.07

Буст распаковал в c:\boost_1_37_0. Туда же положил bjam.exe, версии 3.1.18.
Компилирую с параметрами: bjam --debug-configuration --debug-generator --builddir=c:\lib\boost_1_37_1 --toolset=borland --with-filesystem --with-regex stage

Компилирует минут 5. Валится куча-куча варнингов и других сообщений. В процессах висит bcc32.exe. То есть видимо всё таки он занят делом.

По окончании компиляции в консоли выводится:
...failed updating 62 targets...
...skipped 182 targets...
...updated 412 targets...


И получаю следующий набор папок в каталоге c:\boost_1_37_0\bin.v2\libs\:
date_time\
filesystem\
graph\
iostreams\
math\
program_options\
regex\
signals\
system\
test\
thread\
wave\


Тут явно не всё содержимое boost-а. Что я делаю не так? На вас последняя надежда.
boost borland c++ builder builder
Re: Boost под C++ Builder 6
От: B0FEE664  
Дата: 07.03.12 18:36
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Тут явно не всё содержимое boost-а. Что я делаю не так? На вас последняя надежда.


Большинство библиотек boost-а, это просто заголовочные файлы. Что в папках-то ? Библиотеки есть?
У вас только serialization не хватает. Но может её и не было в той версии.
И каждый день — без права на ошибку...
Re[2]: Boost под C++ Builder 6
От: Аноним  
Дата: 07.03.12 19:22
Оценка:
Здравствуйте, B0FEE664, Вы писали:

BFE>Здравствуйте, Аноним, Вы писали:


А>>Тут явно не всё содержимое boost-а. Что я делаю не так? На вас последняя надежда.


BFE>Большинство библиотек boost-а, это просто заголовочные файлы. Что в папках-то ? Библиотеки есть?

BFE>У вас только serialization не хватает. Но может её и не было в той версии.

В папках много вложенных папок, которые разделяются на две ветки:
c:\boost_1_37_0\bin.v2\libs\regex\build\borland\release\link-static\threading-multi\
и в ней:
libboost_regex-bcb-mt-1_37.lib
c_regex_traits.obj
cpp_regex_traits.obj
cregex.obj
fileiter.obj
icu.obj
instances.obj
posix_api.obj
regex.obj
regex_debug.obj
regex_raw_buffer.obj
regex_traits_defaults.obj
static_mutex.obj
usinstances.obj
w32_regex_traits.obj
wc_regex_traits.obj
wide_posix_api.obj
winstances.obj


c:\boost_1_37_0\bin.v2\libs\regex\build\borland\release\threading-multi\
и в ней:
boost_regex-bcb-mt-1_37.dll
boost_regex-bcb-mt-1_37.lib
c_regex_traits.obj
cpp_regex_traits.obj
cregex.obj
fileiter.obj
icu.obj
instances.obj
posix_api.obj
regex.obj
regex_debug.obj
regex_raw_buffer.obj
regex_traits_defaults.obj
static_mutex.obj
usinstances.obj
w32_regex_traits.obj
wc_regex_traits.obj
wide_posix_api.obj
winstances.obj
boost_regex-bcb-mt-1_37.dll.rsp
boost_regex-bcb-mt-1_37.tds


Разложить их по папкам билдера, а *.hpp файлы взять из c:\boost_1_37_0\boost\ ?
Re: Boost под C++ Builder 6
От: MescalitoPeyot Украина  
Дата: 07.03.12 19:33
Оценка:
Здравствуйте, Аноним, Вы писали:

А>И получаю следующий набор папок в каталоге c:\boost_1_37_0\bin.v2\libs\:


Не вижу у вашего bjam задания на stage или install и, соответственно, параметра stagedir.
Re[3]: Boost под C++ Builder 6
От: B0FEE664  
Дата: 07.03.12 20:04
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Разложить их по папкам билдера, а *.hpp файлы взять из c:\boost_1_37_0\boost\ ?


Я не знаю билдера, но направление действий — правильное.
На стадии компиляции надо указать, где лежат *.hpp, а на стадии линковки указать соответствующие библиотеки.
И каждый день — без права на ошибку...
Re: Boost под C++ Builder 6
От: Ops Россия  
Дата: 07.03.12 20:40
Оценка:
Здравствуйте, Аноним, Вы писали:

А>И получаю следующий набор папок в каталоге c:\boost_1_37_0\bin.v2\libs\:


Собранные либы и длл по-умолчанию копируются в boost_1_37_0\stage\lib , смотрите что там лежит (хотя я не помню уже, что было в 1.37, может и не туда, но точно все нужное для компиляции и работы копируется в 1 папку). Эту же папку прописывайте в настройках проекта для библиотек. Для хидеров — boost_1_37_0\boost .
...failed updating 62 targets...

А вот это говорит о том, что собралось не все. Хотя не факт, что под билдер все собирается — знаю, что какая-то более поздняя версия билдера ставится вместе с готовым бустом, но там многое порезано.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re: Boost под C++ Builder 6
От: Аноним  
Дата: 07.03.12 21:21
Оценка:
Здравствуйте, Аноним, Вы писали:

Всё получилось, всем спасибо!

Может на счёт "всё" я и погорячился. Пока попробовал только regex. Но заморачивался с boost-ом я именно ради регулярных выражений.

Если кому то понадобится, что я сделал:
1) Скачал boost_1_37_0. Скачал boost-jam-3.1.18-1-ntx86.
2) Boost распаковал в c:\boost_1_37_0. В эту же папку положил jaim.exe.
3) Выполняю: C:\boost_1_37_0>bjam --debug-configuration --debug-generator --builddir=c:\boost_1_37_1 --toolset=borland stage
4) Жду минут 5.
5) Из c:\boost_1_37_0\stage\lib\ раскладываю файлы:
*.lib и *.dll в "c:\Program Files (x86)\Borland\CBuilder6\Lib\"
6) Папку c:\boost_1_37_0\boost\ целиком копирую в "c:\Program Files (x86)\Borland\CBuilder6\Include\"
Готово.

Дополнительно для regex надо:
1) Захожу в c:\boost_1_37_0\libs\regex\build\
2) Пишу "make -fbcb5.mak". Жду.
3) Пишу "make -fbcb5.mak install".
На этом шаге у меня произошёл косяк, так как готовые файлы скопировались в папку Delphi вместо C++Builder-а. Но если делфи нет, а стоит только билдер — косяков быть наверное не должно.
3.1) На всякий случай:
из "c:\boost_1_37_0\libs\regex\build\bcb\" .dll и .tds копируем в "c:\Program Files (x86)\Borland\CBuilder6\Bin\". .tds может быть и не обязательно копировать, но я и их скинул.
.lib копируем в "c:\Program Files (x86)\Borland\CBuilder6\Lib\".
Готово.

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

Ещё раз всем спасибо за помощь!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.