在发布模式下构建Boost

时间:2014-08-02 16:14:43

标签: c++ visual-c++ boost

这是Boost 1.55.0。

在Cygwin shell中,在cmd /c "bootstrap.bat"之后,我的命令是:

./b2 variant=release runtime-debugging=off -sICU_PATH=z:/icu-installed -sICU_LINK="/LIBPATH:z:\icu-installed\lib sicuuc.lib sicudt.lib sicuin.lib " --prefix=z:/boost-installed toolset=msvc link=static --without-python --reconfigure install

输出:

link.jam: No such file or directory
Performing configuration checks

    - 32-bit                   : yes
    - arm                      : no
    - mips1                    : no
    - power                    : no
    - sparc                    : no
    - x86                      : yes
    - has_icu builds           : no
warning: Graph library does not contain MPI-based parallel components.
note: to enable them, add "using mpi ;" to your user-config.jam
...

bin.v2/config.log中,我明白了:

...found 8 targets...
...updating 7 targets...
common.mkdir bin.v2
common.mkdir bin.v2\libs
common.mkdir bin.v2\libs\context
common.mkdir bin.v2\libs\context\config
common.mkdir bin.v2\libs\context\config\msvc-12.0
common.mkdir bin.v2\libs\context\config\msvc-12.0\debug
compile-c-c++ bin.v2\libs\context\config\msvc-12.0\debug\32.obj
32.cpp
...updated 7 targets...
...found 2 targets...
...updating 1 target...
...
common.mkdir bin.v2\libs\regex\build\msvc-12.0\debug
compile-c-c++ bin.v2\libs\regex\build\msvc-12.0\debug\has_icu_test.obj
has_icu_test.cpp
...
msvc.link bin.v2\libs\regex\build\msvc-12.0\debug\has_icu.exe
sicuuc.lib(udata.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in has_icu_test.obj
sicuuc.lib(udata.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in has_icu_test.obj
...

因此,出于某种原因,它在那里使用调试设置。

如何在发布模式下构建Boost?

或者只是在调试模式下构建配置测试,其余的实际上是在发布模式下?但那是为什么呢?我怎样才能在调试模式下进行配置测试?

在这种情况下,has_icu失败,因为我在发布模式(/MD)中构建了lib。

1 个答案:

答案 0 :(得分:1)

我发现BlueGo工具对于构建提升非常有帮助。您也可以配置发布/调试模式并选择其他配置。