![](/img/trans.png)
[英]How to build boost iostreams with gzip and bzip2 support on Windows
[英]boost iostreams with bzip2 built from source on windows
最近,我花了一些时间研究在Windows上构建的升级版本1.44.0,两个iostream都支持zlib和bzip2压缩过滤器。 出于各种原因,决定允许boost从源代码构建zlib和bzip2库。 对于它的价值,但我认为不重要,我使用的MSVC版本是VC9(VS2008)。 另请注意,从我的肤浅检查来看,这个问题应该适用于在Windows上针对bzip2构建的iostreams的任何版本的boost。
通过指定-sZLIB_SOURCE=<PATH>
和-sBZIP2_SOURCE=<PATH>
来-sZLIB_SOURCE=<PATH>
构建Boost。 但是,有人注意到boost_iostreams * .dll库取决于libbz2.dll(而不是boost_bzip2 * .dll),它不存在。 然而,Boost成功构建了boost_bzip2 * .dll。 请注意,我使用通配符作为所有构建变体信息的占位符。
问题:某处存在对libbz2.dll的硬编码依赖。
我发现最简单的解决方案是修改bzip2源中包含的libbz2.def。 即删除该行(从bzip2 v1.0.6开始,它是第1行):
LIBRARY LIBBZ2
删除此行消除了对名为“libbz2.dll”的DLL的硬编码依赖性。 然后,这允许名为boost_bzip2 * .dll的boost-built libs和生成的* .lib和* .exp文件正确解析为相应的DLL,以及导出所有必需的函数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.