使用 vcpkg 构建的 Zlib - 在 x86 模式下在 MSVC 2015 中链接时出错

Zlib built with vcpkg - error while linking in MSVC 2015 in x86 mode

我已经用 vcpkg 构建了 zlib。我尝试了几种变体,例如:

vcpkg install zlib
vcpkg install zlib:x86-windows-static
vcpkg install zlib:x64-windows-static

现在,我有一个简单的 minizip 演示,我想使用我构建的静态 zlib (zlib.lib)。

在 x64 模式下,所有内容都正确链接到 x64 zlib。但是,在 x86 模式下,x86 zlib 库出现以下错误:

1>mz_crypt.obj : error LNK2019: unresolved external symbol _crc32@12 referenced in function _mz_crypt_crc32_update
1>mz_strm_zlib.obj : error LNK2019: unresolved external symbol _deflate@8 referenced in function _mz_stream_zlib_deflate
1>mz_strm_zlib.obj : error LNK2019: unresolved external symbol _deflateEnd@4 referenced in function _mz_stream_zlib_close
1>mz_strm_zlib.obj : error LNK2019: unresolved external symbol _inflate@8 referenced in function _mz_stream_zlib_read
1>mz_strm_zlib.obj : error LNK2019: unresolved external symbol _inflateEnd@4 referenced in function _mz_stream_zlib_close
1>mz_strm_zlib.obj : error LNK2019: unresolved external symbol _deflateInit2_@32 referenced in function _mz_stream_zlib_open
1>mz_strm_zlib.obj : error LNK2019: unresolved external symbol _inflateInit2_@16 referenced in function _mz_stream_zlib_open

我正在使用这些预处理器宏:

ZLIB_WINAPI
HAVE_ZLIB
MZ_ZIP_NO_ENCRYPTION

代码生成设置为:Multi-threaded Debug (/MTd).

对于未来的读者,我已经通过删除

解决了这个问题
ZLIB_WINAPI

用于 x86 构建。