在windows上使用zlib编译boost
Compiling boost with zlib on windows
关于如何在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)