如何使用 zlib 支持构建 boost?

How to build boost with zlib support?

我正在尝试在支持 zlib 的 Windows 上构建 Boost C++ 库版本 1.65.1。我正在使用柯南包中的 zlib 库和我之前构建的 zlib。我正在尝试了解使用 zlib 支持构建 boost 的正确步骤,以使用它们来创建 Conan 的 boost 配方。我试着按照官方 boost documentation 的说明进行操作。我通过以下方式设置环境变量 ZLIB_LIBRARY_PATHZLIB_NAMEZLIB_INCLUDE

set ZLIB_LIBRARY_PATH=C:\Users\ivan.bobev\.conan\data\zlib.2.11\igsoft\stable\packageda998e3642b50bee33f4449826b2d623661505\lib
set ZLIB_NAME=zlibstat
set ZLIB_INCLUDE=C:\Users\ivan.bobev\.conan\data\zlib.2.11\igsoft\stable\packageda998e3642b50bee33f4449826b2d623661505\include

构建命令是:

.\b2.exe -j8 --prefix="C:\work\test_builds\boost\install\x64_shared_release" --build-dir="C:\work\test_builds\boost\build\x64_shared_release" --layout=system architecture=x86 address-model=64 toolset=msvc variant=release debug-symbols=on link=shared threading=multi runtime-link=shared install

结果是:

 - zlib                     : no  (cached)

我还尝试在运行之间清除提升构建现金。

在此之后,我尝试直接从 b2 构建命令设置环境变量:

.\b2.exe -j8 -sZLIB_LIBRARY_PATH="C:\Users\ivan.bobev\.conan\data\zlib.2.11\igsoft\stable\packageda998e3642b50bee33f4449826b2d623661505\lib"-sZLIB_NAME="zlibstat" -sZLIB_INCLUDE="C:\Users\ivan.bobev\.conan\data\zlib.2.11\igsoft\stable\packageda998e3642b50bee33f4449826b2d623661505\include" --prefix="C:\work\test_builds\boost\install\x64_shared_release" --build-dir="C:\work\test_builds\boost\build\x64_shared_release" --layout=system architecture=x86 address-model=64 toolset=msvc variant=release debug-symbols=on link=shared threading=multi runtime-link=shared install

结果是一样的。

最后,我尝试通过以下方式将选项添加到 project-config.jam 文件中:

using zlib : 1.2.11 : <search>C:\Users\ivan.bobev\.conan\data\zlib.2.11\igsoft\stable\packageda998e3642b50bee33f4449826b2d623661505\lib <name>zlibstat <include>C:\Users\ivan.bobev\.conan\data\zlib.2.11\igsoft\stable\packageda998e3642b50bee33f4449826b2d623661505\include ;

我还是没有成功。

在 zlib include 文件夹中有子文件夹 zlib。我还尝试了上面的 3 个变体,将路径设置为“../include/zlib”。又没有成功。

如何使用带有 zlib 的预构建 Conan 包构建支持 zlib 的 Boost?

project-config.jam 补丁没问题,实际上在 Linux 和 OSX 中有效。在 Windows 中,您需要将“\”字符(jam 语言中的转义字符)替换为“/”。

你可以看到我为 Boost 1.64.0 更新的柯南食谱 here