繁体   English   中英

使用从Windows上的源代码构建的bzip2来增强iostream

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM