我想使用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
,但该目录不存在!
谢谢!
更新
我已经能够获得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还没有用,但是......
答案 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 + +库。
希望有所帮助。