Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > помогите скомпилиорвать boost под vc71


Автор: Arkadiy 12.8.2006, 15:03
Компилятор: vc 7.1
Boost Version 1.32.0

Не могу скомпилировать Boost.jam. smile
В документации к бусту Getting started\Install Boost.Jam\Building Boost.Jam написано:
Цитата

Running the scripts without arguments will give you the best chance of success. On Windows platforms from a command console do:
Код

cd <jam source location>
.\build.bat



если делаю, как написано, получаю единственную строку: 
Цитата

\Microsoft was unexpected at this time.


если запускаю с параметром
build.bat vc7
получаю тоже всего одну строчку:
Цитата

\Common was unexpected at this time.


переменные окружения установлены вот так:
System Variables:

Цитата

VS71COMNTOOLS = C:\Program Files (x86)\Microsoft Visual Studio .NET 2003\Common7\Tools\



Цитата

VC71_ROOT = C:\Program Files(x86)\Microsoft Visual Studio .NET 2003\Vc7


Цитата

VCINSTALLDIR = C:\Program Files (x86)\Microsoft Visual Studio .NET 2003\


в build.bat есть явное указание пути C:\Program files\, пробовал менять его на на C:\Program Files (x86)\ ничего не изменилось

Автор: Daevaorn 12.8.2006, 21:50
Arkadiy, 
Лучше найди в интернете уже готовый бинарник bjam.exe. Я сам так делал, потому что у меня собранный лично вылетал с ошибкой при попытки запустить сборку boost.

Автор: bel_nikita 12.8.2006, 22:09
Для начала скачать: http://sourceforge.net/project/showfiles.php?group_id=7586&package_id=72941
Скопировать bjam.exe в директорию \boost_1_31_1
Потом в этой же директории создать bat-файл следующего содержания:
Код
@echo off
call "c:\Program Files\Microsoft Visual Studio .NET 2003\Common7\Tools\vsvars32.bat"
bin\bjam "-sTOOLS=vc7_1" "-sBUILD=release debug <threading>single/multi <runtime-link>dynamic/static" stage


Если используется STLport, то
Код
call "c:\Program Files\Microsoft Visual Studio .NET 2003\Common7\Tools\vsvars32.bat"
set STLPORT_PATH=c:\dev\STLPort-5.0.1
set STLPORT_5_0_1_PATH=c:\dev\STLPort-5.0.1
set STLPORT_VERSION=5.0.1
bin\bjam "-sTOOLS=vc7_1-stlport" "-sBUILD=release debug <stlport-iostream>on <threading>multi <runtime-link>dynamic/static" stage

Автор: Любитель 14.8.2006, 22:28
Самый простой вариант - скачать готовый bjam.exe.
Хотя билдится он вполне нормально. Проверено на трёх VS (шестёрка, 2003, 2005) и на MinGW (3.4.2 вроде бы).
По-моему у тебя просто обрываются пути в переменных окружения (возможно из-за каких-либо пробелов). Ты их сам прописывал?
Неважно ставил ли ты студию или фриварный компилер (Command Line Tools) в меню программ у тебя есть ялычок для консольки с правильнопрописанными всеми путями. Запусти его и пиши "build vc7". Когда всё компильнётся (надеюсь нормально) копирни из папки bin.ntx86 (а если из 64-битной консольки в 2005-ой, то bin.ntx64) файл bjam.exe в корневой каталог буста. Перейди в консольке в этот каталог и пиши bjam "-sTOOLS=vc7_1" "--prefix=базовая пака для буста" "--with-python-root=путь к питону" install. Жди. У тебя будут готовы дебаг и релиз версии со всеми причиндалами.

Автор: Arkadiy 15.8.2006, 13:45
stlport неиспользую(он у меня почемуто непроходит unit testы), при вызове батника:
 
Цитата

 call "c:\Program Files\Microsoft Visual Studio .NET 2003\Common7\Tools\vsvars32.bat"
 bin\bjam "-sTOOLS=vc7_1" "-sBUILD=release debug <threading>single/multi <runtime-link>dynamic/static" stage
 

 получаю:
 
Цитата

 ******************************************************
 Building Boost.Iostreams with bzip2 support disabled.
 To enable bzip2, consult the Boost.Iostreams documentation
 ******************************************************
 ******************************************************
 Building Boost.Iostreams with zlib and gzip support disabled.
 To enable zlib and gzip, consult the Boost.Iostreams documentation
 ******************************************************
 ---------------------------------------------------------------------
 *** If you don't need Boost.Python, you can ignore this section  ***
 *** pass --without-python to suppress this message in the future ***
 
 skipping Boost.Python library build due to missing or incorrect configuration
 
 couldn't find Python.h in "c:/Python24/include"
 
 You can configure the location of your python installation by setting:
 PYTHON_VERSION - The 2-part python Major.Minor version number (e.g.
                  "2.2", NOT "2.2.1")  - currently "2.4"
 
 PYTHON_ROOT    - automatically configured from PYTHON_VERSION if not
                  otherwise set ; currently "c:/Python24"
 
 The following are automatically configured from PYTHON_ROOT if not
 otherwise set:
 
     PYTHON_LIB_PATH       - path to Python library object; currently
                             "c:/Python24/libs"
 ---------------------------------------------------------------------
 Building Boost.Regex with the optional Unicode/ICU support disabled.
 Please refer to the Boost.Regex documentation for more information
 (and if you don't know what ICU is then you probably don't need it).
 F:\lib\boost_1_33_1\tools/build/v1\allyourbase.jam:645: in C++
 rule C++-action unknown in module 
 F:\lib\boost_1_33_1\tools/build/v1\allyourbase.jam:1142: in Object
 F:\lib\boost_1_33_1\tools/build/v1\allyourbase.jam:1207: in Objects
 F:\lib\boost_1_33_1\tools/build/v1\boost-base.jam:150: in dll-files
 F:\lib\boost_1_33_1\tools/build/v1\boost-base.jam:1969: in subvariant-target
 F:\lib\boost_1_33_1\tools/build/v1\boost-base.jam:2406: in stage
 Jamfile:224: in load-jamfiles
 F:\lib\boost_1_33_1\tools\build\v1\bootstrap.jam:21: in boost-build
 F:\lib\boost_1_33_1\boost-build.jam:16: in module scope
 

 
 пробовал ещё вот так:
 
Цитата

 call "c:\Program Files\Microsoft Visual Studio .NET 2003\Common7\Tools\vsvars32.bat"
 bjam "-sTOOLS=vc-7_1" install
 

 получил вот это:
 
Цитата
******************************************************
 Building Boost.Iostreams with bzip2 support disabled.
 To enable bzip2, consult the Boost.Iostreams documentation
 ******************************************************
 ******************************************************
 Building Boost.Iostreams with zlib and gzip support disabled.
 To enable zlib and gzip, consult the Boost.Iostreams documentation
 ******************************************************
 ---------------------------------------------------------------------
 *** If you don't need Boost.Python, you can ignore this section  ***
 *** pass --without-python to suppress this message in the future ***
 
 skipping Boost.Python library build due to missing or incorrect configuration
 
 couldn't find Python.h in "c:/Python24/include"
 
 You can configure the location of your python installation by setting:
 PYTHON_VERSION - The 2-part python Major.Minor version number (e.g.
                  "2.2", NOT "2.2.1")  - currently "2.4"
 
 PYTHON_ROOT    - automatically configured from PYTHON_VERSION if not
                  otherwise set ; currently "c:/Python24"
 
 The following are automatically configured from PYTHON_ROOT if not
 otherwise set:
 
     PYTHON_LIB_PATH       - path to Python library object; currently
                             "c:/Python24/libs"
 ---------------------------------------------------------------------
 Building Boost.Regex with the optional Unicode/ICU support disabled.
 Please refer to the Boost.Regex documentation for more information
 (and if you don't know what ICU is then you probably don't need it).
 ...found 13121 targets...
 
 ...updating 5137 targets...
 MkDir1 C:\Boost

 

 если на диске с создать папку Boost, то в следующий раз:
 
Цитата

 ...updating 5136 targets...
 MkDir1 C:\Boost\lib
 

 в чём я ошибся?

Автор: Любитель 20.8.2006, 20:48
Во-первых, тебе сказали что сжатие в Boost.Iostreams работать не будет (а оно тебе надо), т. к. у тебя не прописаны пути к либам bzip2, gzip и zlib, скорее всего нет и самих либ.
Кроме того у тебя нет Питона => не будет работать Boost.Python.
Насчёт разницы в циферках - создание папки это одна из целей (target). Так что ты просто помог беджаму  smile 

Автор: Arkadiy 21.8.2006, 02:47
Любитель,
bjam после вывода
...updating 5137 targets...
 MkDir1 C:\Boost
перестаёт работать, если создать эту папку, то он перестаёт работать после:
 ...updating 5136 targets...
 MkDir1 C:\Boost\lib
и так далее...

boost смог скомпилить только под 32 битной виндой smile

Автор: Любитель 24.8.2006, 10:00
Извиняюсь, чуток не дочитал.
Вообще не понимаю, у меня нормально компилится на x64.

Автор: Любитель 26.8.2006, 10:40
ОК.
Проверил весь процесс в чистую сначала до конца. Имеем:
Во-первых, в стандартном build.bat для bjam не предусмотрено возможность наличия скобок в именах папок (например, "C:\Program Files (x86)"). Ессно я это дело исправил, да и вообще улучшил поддержку x64-систем.
Во-вторых в исходниках беджама с 1.33 версии буста (а мож и раньше) небольшая ошибка (по-крайней мере в .tar.gs - архиве). Для исправления нужно исправить файлы в папке modules.
В-третьих, с 2003-ей студией ты не сможешь компилить для x64. Т. е. компилить ты сможешь, но полученные проги будут работать через WOW64, т. е. это x86-проги. Настоятельно рекомендую достать 2005-ую студию.

Как билдить:
1. Start => Programs => Microsoft Visual Studio 2005 => Tools => VS 2005 Win64 Command Line (или подобное с 2003-ей, которую, как я уже сказал, надо анинсталлить с компа).
2. В полученной консольки переходим (не забываем юзать табы и шифт-табы для автокомплита имён папок и файлов) в папку буста, затем tools => build => jam_src (cd t{tab}\b{tab}{tab}{tab}\j{tab}{enter}).
3. Пишем build.bat. Ждём. В папке bin.nt (для x64-версии) или bin.nt.x86 (для обычной) появляетя bjam.exe (сама папка в jam_src). Его копируем в корень буста (куда мы распаковали архив).
4. Цедехаемся в эту папку: cd ..\..\..\ {enter}
5. Пишем 
Код

bjam "-sTOOLS=vc-8_0" "--prefix="C:\Libs\Boost" --without-python -sNO_COMPRESSION=1 install
и давим ентер. Эта строка для установки буста без поддержки сжатия в иостримз и без питон-либы в папку C:\Libs\Boost для VC+ 8.0, для 7.1 соответственно заменяем vc-8_0 на vc-7_1.
6. Ждёмс. Получаем в указанном нами каталоге (C:\Libs\Boost) папки инклюд и либ файлов. Прописываем в студии каталоги и можно работать smile

Прилагаю архив, с исправлениями для jam_src (build.bat + modules) и откомпиленным на x64 bjam.exe (как доказательство  smile )

Автор: Любитель 26.8.2006, 11:52
Что-то файл не лепится. Пишет мол я не могу прилепливать такой тип файлов  smile 
Вообще кому надо - сброшу на e-mail.

Автор: Dark Elf 26.8.2006, 13:05
Borland C++ Builder 6

Код

@echo off
set BCCROOT=C:\Program Files\Borland\CBuilder6
set PYTHON_ROOT=C:\Python24
set PYTHON_VERSION=2.4
bjam "-sTOOLS=borland" "-sBUILD=release <stlport-iostream>on <threading>multi <runtime-link>static/dynamic"


MinGW

Код

@echo off
set PYTHON_ROOT=C:\Python24
set PYTHON_VERSION=2.4
bjam "-sTOOLS=mingw" "-sBUILD=release <stlport-iostream>on <threading>multi <runtime-link>static/dynamic"


Visual C++ 6

Код

@echo off
call "c:\Program Files\Microsoft Visual Studio\VC98\Bin\VCVARS32.BAT"
set STLPORT_PATH=c:\STLPort-4.6.2
set STLPORT_4.6_PATH=c:\STLPort-4.6.2
set STLPORT_VERSION=4.6
set PYTHON_ROOT=C:\Python24
set PYTHON_VERSION=2.4
bjam "-sTOOLS=msvc-stlport" "-sBUILD=release <stlport-iostream>on <threading>multi <runtime-link>static/dynamic"


Visual C++ 7.1

Код

@echo off
call "c:\Program Files\Microsoft Visual Studio .NET 2003\Common7\Tools\vsvars32.bat"
set STLPORT_PATH=c:\STLPort
set STLPORT_5_PATH=c:\STLPort
set STLPORT_VERSION=5
set PYTHON_ROOT=C:\Python24
set PYTHON_VERSION=2.4
bjam "-sTOOLS=vc-7_1-stlport" "-sBUILD=release <stlport-iostream>on <threading>multi <runtime-link>static/dynamic"


Visual C++ 8

Код

@echo off
call "c:\Program Files\Microsoft Visual Studio 8\Common7\Tools\vsvars32.bat"
set STLPORT_PATH=c:\STLPort
set STLPORT_5_PATH=c:\STLPort
set STLPORT_VERSION=5
set PYTHON_ROOT=C:\Python24
set PYTHON_VERSION=2.4
bjam "-sTOOLS=vc-8_0" "-sBUILD=release <stlport-iostream>on <threading>multi <runtime-link>static/dynamic"

Автор: TochkaKrovi 4.2.2007, 20:58
помогите плиз, буст юзаю впервые.

при попытке собрать bjam.exe вылезает постоянно строка:
Непредвиденное появление: \Utilities\Bin\x86.

Причем не важно что в параметрах build.bat ввожу!
Пользуюсь MVC2003


Тут советуют взять готовый bjam.exe! хех дык где его взять-то, весь инет облазил, и без результатов  smile 

Автор: Daevaorn 4.2.2007, 22:48
Цитата(TochkaKrovi @  4.2.2007,  21:58 Найти цитируемый пост)
Тут советуют взять готовый bjam.exe! хех дык где его взять-то, весь инет облазил, и без результатов  

меня такие заявления всегда смешат. в третьем сообщении данной темы дается ссылка. пару кликов и вот:
http://sourceforge.net/project/downloading.php?group_id=7586&use_mirror=heanet&filename=boost-jam-3.1.13-1-ntx86.zip&29191978

Автор: Любитель 5.2.2007, 16:02
Daevaorn, для Win x64 кстати нету готового. А build.bat для bjam (стандартный) не работает. Могу объяснить почему - потому что на x64 %ProgramFiles% для x86 процессов равна"C:\Program Files (x86)". (по дефолту). "Ну и что?" - скажите вы.  А здесь начинает тупить парсер бат-файлов: переменные а батниках работают через что-то нечто и их значения подставляются перед парсингом строки. А скобки вроде как в ифах используются - ну типа фигурных в сях. В итоге парсер просто захлёбывался. Я этот батник перписал в своё время. Немного извратно правда (ну не профи я в батниках - мож какие хитрости не знаю). Понаставил короче вызывов функций (call на метку) или как это в батниках назвать - но работало. ТЕперь у меня есть "пропатченный" build.bat + bjam.exe for ntx64. Вопрос на засыпку - почему нельзя было рабоатть через bjam for x8 - а фиг его, ну у меня он вываливался с ошибками. Я забил и сделал по своему.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)