Попытка построить Boost: я не могу получить bjam

Я хотел бы создать boost, используя два разных компилятора, MinGW и Visual С++ 2010 Express, используя bjam:

bjam toolset=gcc,msvc variant=release link=static,shared threading=multi install

Проблема в том, что у меня нет bjam. Я не мог найти его в каталоге Boost, и тот, который я загрузил из другого места, был неправильной версией.

Я должен уметь строить его из кода в Boost, но как? Я прочитал, что я должен запустить build.bat из каталога BOOST_ROOT/tools/jam/src, но этот каталог не существует !

Спасибо!


  • Платформа: Windows7
  • Составители: MinGW и Visual С++ 2010 Express

Update:

Мне удалось получить bjam с помощью: bootstrap.bat gcc
Затем, запуская bjam с предыдущими параметрами, я получаю только библиотеки для MinGW (.dll и .a).
Это выдержка из сообщений об ошибках, которые я получаю в отношении Visual С++ 10:

...
    call "c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86 >nul
cl /Zm800 -nologo @"bin.v2\libs\test\build\msvc-10.0\release\asynch-exceptions-on\threading-multi\plain_report_formatter.obj.rsp"
...failed compile-c-c++ bin.v2\libs\test\build\msvc-10.0\release\asynch-exceptions-on\threading-multi\plain_report_formatter.obj...
...
...skipped <pbin.v2\libs\test\build\msvc-10.0\release\asynch-exceptions-on\threading-multi>boost_unit_test_framework-vc100-mt-1_48.dll for lack of <pbin.v2\libs\test\build\msvc-10.0\release\asynch-exceptions-on\threading-multi>compiler_log_formatter.obj...
...
common.mkdir bin.v2\libs\thread\build\msvc-10.0\release\threading-multi
common.mkdir bin.v2\libs\thread\build\msvc-10.0\release\threading-multi\win32
compile-c-c++ bin.v2\libs\thread\build\msvc-10.0\release\threading-multi\win32\thread.obj
\Microsoft was unexpected at this time.
...
    call "c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86 >nul
cl /Zm800 -nologo @"bin.v2\libs\thread\build\msvc-10.0\release\threading-multi\win32\thread.obj.rsp"

...failed compile-c-c++ bin.v2\libs\thread\build\msvc-10.0\release\threading-multi\win32\thread.obj...
compile-c-c++ bin.v2\libs\thread\build\msvc-10.0\release\threading-multi\win32\tss_dll.obj
\Microsoft was unexpected at this time.
...
...skipped <pC:\Boost\lib>boost_thread-vc100-mt-1_48.lib for lack of <pbin.v2\libs\thread\build\msvc-10.0\release\threading-multi>boost_thread-vc100-mt-1_48.lib
...

Попытка использования:
bootstrap.bat vc100
Я получаю сообщение об ошибке: "Неизвестный набор инструментов: vc100"

С помощью:
bootstrap.bat vc10
или:
bootstrap.bat mingw
Я получаю: "\ Microsoft в это время была неожиданной".

Изменение project-config.jam не помогло.

Итак, я сделал большой шаг вперед, но vc10 еще не работает...

Ответ 1

В вашем каталоге boost есть bootstrap.bat. Запустите его.

Он автоматически построит bjam (возможно, используя визуальный С++).

Ответ 2

Структура каталогов в boost изменилась в последней версии, я думаю.

Источники для bjam находятся в tools/build/v2/engine. Запустите build.sh mingw из этого каталога, используя оболочку MinGW, и он должен построить bjam.exe и b2.exe и поместить их в tools/build/v2/engine/ntx86. Скопируйте файл b2.exe в корневой каталог boost. Затем вы сможете создавать библиотеки Visual С++ с помощью b2 toolset=msvc.

Надеюсь, что это поможет.