【问题标题】:How to build boost iostreams with gzip and bzip2 support on Windows如何在 Windows 上使用 gzip 和 bzip2 支持构建 boost iostreams
【发布时间】:2011-09-02 11:18:29
【问题描述】:

如何在gzip 和bzip2 支持下构建boost 的iostreams 库?

【问题讨论】:

    标签: c++ boost bzip2 boost-iostreams


    【解决方案1】:

    我不是专家,但这对我有用。

    选项 1(直接来自源代码)

    1. 下载zlib 和bzip2 的源文件。

    2. 将下载内容提取到目录,将目录移动到您喜欢的位置。我不得不避免使用C:\Program Files (x86)\,因为我无法让它与目录名称中的空格一起使用,所以我创建了C:\Sys\ 并使用了它。

    3. 使用提升的权限(以管理员身份运行)打开命令提示符,转到您的 boost 目录,例如C:\Program Files (x86)\boost\boost_1_50_0\ 并输入 b2.exe --with-iostreams -s BZIP2_SOURCE=C:\Sys\bzip2-1.0.6 -s ZLIB_SOURCE=C:\Sys\zlib-1.2.7

    4. 验证 C:\Program Files (x86)\boost\boost_1_50_0\stage\lib 是否包含所需文件,例如libboost_zlib-vc100-*-1_50 和 libboost_bzip2-vc100-*-1_50。

    选项 2(首先从源代码构建)

    1. 如上,下载源文件。

    2. 使用提升的权限打开Visual Studio Command Prompt(以管理员身份运行)

    3. 转到C:\Sys\zlib-1.2.7> 并输入nmake -f win32\Makefile.msc。这将构建zlib。

    4. 转到C:\Sys\bzip2-1.0.6> 并输入nmake -f makefile.msc。这将构建gzip2。

    5. boost 的命令现在变为 b2.exe --with-iostreams -s BZIP2_BINARY=libbz2 -s BZIP2_INCLUDE=C:/Sys/bzip2-1.0.6 -s BZIP2_LIBPATH=C:/Sys/bzip2-1.0.6 -s ZLIB_BINARY=zlib -s ZLIB_INCLUDE=C:/Sys/zlib-1.2.7 -s ZLIB_LIBPATH=C:/Sys/zlib-1.2.7

    【讨论】:

    • 太棒了......正是我想要的......谢谢队友
    • 这很臭。如果我提供无效的 zlib 路径,它仍然会构建。有没有人使用 boost 而没有花费几天的时间挣扎?
    • 如果这对您不起作用,请省略“-s”,而是设置环境变量 s 即。 'SET ZLIB_INCLUDE="path/to/file' 等...然后运行对我有用的 b2
    • 您可能还需要调整工具集和地址模型值以匹配预编译的 zlib 和 bzip2 二进制文件。见boost.org/build/doc/html/bbv2/reference/…
    • 我能够通过使用程序文件的 dos 8.3 文件名从带有空格的路径中包含:b2.exe --with-iostreams -s ZLIB_SOURCE="C:\Progra~1\boost\ zlib-1.2.11" -s NO_BZIP2=1
    猜你喜欢
    • 1970-01-01
    • 2020-07-19
    • 2011-02-22
    • 2011-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-18
    相关资源
    最近更新 更多