簡體   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