在Windows上使用zlib编译boost

时间:2014-04-16 11:09:32

标签: c++ boost zlib boost-iostreams

是否有关于如何在Windows上使用zlib编译boost的好教程。 我查看了加速参考,但它含糊不清。 我确实下载了zlib dll和源代码,并在visual studio中做了参考。

上有链接错误
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:未解析的外部符号&#34; _declspec(dllimport)public:__ thishisall   升压::输入输出流::详细:: gzip_header ::〜gzip_header(无效)&#34;   (__imp ?? 1gzip_header @ detail @ iostreams @ boost @@ QAE @ XZ)在   function&#34; public:__ thishisall   提高::输入输出流:: basic_gzip_decompressor   \&gt; ::〜basic_gzip_decompressor&gt;(void)&#34; (?? 1?$ @ basic_gzip_decompressor V'$ @分配器@ d性病@@@输入输出流@升压@@ QAE @ XZ)    -

1 个答案:

答案 0 :(得分:1)

链接器实际上告诉您它找不到“basic_gzip_decompressor”。原因是因为你的升级库中内置了zlib 而不是

This SO question声称有一个解决方案没有必须将zlib构建到boost库中

我同意关于此的文档有点简洁,但它是found here。如果您的正常构建命令行是这样的:

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" ZLIB_INCLUDE="C:\zlib-1.2.8" 

当您查找配置检查输出时,可以相对快速地检查它是否有效(在编译完成之前)。它应该说:

- zlib               : yes  (cached)