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