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

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

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

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

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

Спасибо!


  • Платформа: Windows7
  • Компиляторы: MinGW и Visual C++ 2010 Express

Обновить:

Я смог получить BJAM с: bootstrap.bat gcc
Затем, запустив bjam с предыдущими параметрами, я получаю только библиотеки для MinGW (.dll и.a).
Вот выдержка из сообщений об ошибках, которые я получаю в отношении Visual C++ 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 не работает, пока...

3 ответа

В вашем каталоге Boost находится файл bootstrap.bat. Запустить его.

Он будет автоматически собирать bjam (возможно, с использованием Visual C++).

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

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

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

В моем случае работает решение от jork!

Я поискал файл и обнаружил, что он находится в tools/build/src/engineкаталог и просто скопировал его в корневой каталог boost. Но я должен сказать, что это ужасно, мне казалось, что автор кодовой базы пытается что-то скрыть. И я обнаружил, что мой bjam.exe точно такого же размера с b2.exe, что составляет 404 КБ.

Я вернусь позже, чтобы убедиться, что решил эту проблему.

Другие вопросы по тегам