试图建立Boost:我无法获得bjam

时间:2011-11-30 17:30:55

标签: boost build bjam

我想使用bjam使用两个不同的编译器MinGW和Visual C ++ 2010 Express来构建boost:

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 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
我得到:“\微软此时出人意料。”

更改project-config.jam没有帮助。

所以,我向前迈了一大步,但是vc10还没有用,但是......

2 个答案:

答案 0 :(得分:6)

您的boost目录中有 bootstrap.bat 。跑吧。

它会自动构建bjam(可能使用visual c ++)。

答案 1 :(得分:5)

我认为在最新版本中,boost中的目录结构发生了变化。

bjam的来源位于tools/build/v2/engine。使用MinGW shell从该目录运行build.sh mingw,它应该构建bjam.exe和b2.exe并将它们放在tools/build/v2/engine/ntx86中。将b2.exe复制到boost根目录。然后,您应该能够使用b2 toolset=msvc构建Visual c + +库。

希望有所帮助。