是否有关于如何在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) -
答案 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)