使用zlib编译boost

cpp*_*nda 13 c++ boost compilation zlib

我正在使用Windows 7下的bjam编译提升(64位 - 应该是无关紧要的)

D:\development\boost\boost_1_44\libs\iostreams\build>bjam stage ^
--toolset=msvc-10.0 link=static ^
--build-type=complete ^
-s ZLIB_SOURCE=C:\zlib125-dll ^
-s ZLIB_LIBPATH=C:\zlib125-dll\lib ^
-s ZLIB_INCLUDE=C:\zlib125-dll\include ^
-s ZLIB_BINARY=C:\zlib125-dll
Run Code Online (Sandbox Code Playgroud)

但我只能得到

stage/libboost_iostreams-vc100-mt-gd-1_44.lib
bin.v2/libs/iostreams/build/msvc-10.0/debug/threading-multi/boost_iostreams-vc100-mt-gd-1_44.dll
bin.v2/libs/iostreams/build/msvc-10.0/debug/threading-multi/boost_iostreams-vc100-mt-gd-1_44.lib

bin.v2/libs/iostreams/build/zlib/msvc-10.0/debug/threading-multi/boost_zlib-vc100-mt-gd-1_44.dll
bin.v2/libs/iostreams/build/zlib/msvc-10.0/debug/threading-multi/boost_zlib-vc100-mt-gd-1_44.lib
Run Code Online (Sandbox Code Playgroud)

但是stage/libboost_zlib-vc100-mt-gd-1_44.lib失踪了.

我编译错了吗?

当我尝试运行我的项目,该项目与boost和自编译的boost/thread库运行良好时,当我包含boost zlib的东西时,我得到以下错误

6>LINK : fatal error LNK1104: cannot open file 'libboost_zlib-vc100-mt-gd-1_44.lib'
Run Code Online (Sandbox Code Playgroud)

有谁知道我做错了什么?

eco*_*tax 15

我确实设法使用选项
-sZLIB_SOURCE ="C:\ zlib-1.2.5" 构建它们.
注意-s和路径周围的引号之后没有空格.

  • 只是说清楚:你也不能在路径中有空格.这非常重要,当然,完全没有记录. (7认同)

Fer*_*cio 5

我需要一段时间才能使用zlib支持正确构建Boost.我在这里写博客.

总而言之,我遇到的问题是,在某些时候zlib不再包含gzio.c源文件.Boost构建系统的jamfile(jamfile.v2)引用了gzio模块导致它失败.解决方案是在构建之前删除该引用.

我不确定这个答案是否相关,除非你试图建立一个旧版本的Boost.我相信原始构建问题已在更新版本的Boost中得到修复.

  • 虽然这在理论上可以回答这个问题,[但最好](http://meta.stackexchange.com/q/8259)在这里包含答案的基本部分,并提供参考链接. (5认同)