在windows上使用zlib编译boost

Compiling boost with zlib on windows

本文关键字:zlib 编译 boost windows      更新时间:2023-10-16

关于如何在windows上使用zlib编译boost,有很好的教程吗。我看了一下助推参考,但它很模糊,而且还不够。我确实下载了zlib dll和源代码,并在visualstudio中做了参考。我在上有链接错误

gzip_decompressor();

完整代码:

using namespace boost::iostreams;
using namespace std;
std::ifstream file("hello.gz", std::ios_base::in | std::ios_base::binary);
filtering_streambuf < input > in;
in.push(gzip_decompressor());
in.push(file);
boost::iostreams::copy(in, std::cout);

我收到这个错误,

错误11错误LNK2019:未解析的外部符号"_declspec(dllimport)public:__thiscallboost::iostreams::detail::gzip_header::~gzip_head(void)"(__imp??1gzip_header@detail@iostreams@boost@@QAE@XZ)中引用函数"public:__thiscallboost::iostreams::basic_zip_compressor\>::~basic_gzip_decompressor>(void)"(??1$basic_gzip_decompressor@V$allocator@D@std@@@iostreams@boost@@QAE@XZ)–

链接器实际上告诉您它找不到;basic_zip压缩器";。原因是您的boost库中内置了zlib而不是

(这个SO问题声称有一个解决方案,而不必将zlib构建到boost libs中)

我同意关于这方面的文件有点简洁,但它可以在这里找到。如果你的正常构建命令行是这样的:

b2 -j15 --toolset=msvc --build-type=complete stage 

添加ZLIB定义,使其使用ZLIB 构建

b2 -j15 --toolset=msvc --build-type=complete stage -s ZLIB_SOURCE="C:zlib-1.2.8" -s ZLIB_INCLUDE="C:zlib-1.2.8" 

在查找配置检查输出时,可以相对快速地检查它是否工作(在编译完成之前)。它应该说这样的话:

- zlib               : yes  (cached)