这是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。