使用zlib构建boost::iostreams



我正在尝试构建以下代码:

#include <boost/iostreams/filter/zlib.hpp>
#include <iostream>
int main(int argc, char* argv[])
{
int a = boost::iostreams::zlib::default_compression;
std::cout << a;
return 0;
}

使用命令:

g++ -Wall -ID:boost_1_72_0 -c -o Source.o Source.cpp
g++ -Wall -ID:boost_1_72_0 Source.o -LD:boost_1_72_0stagelib -lboost_iostreams-mgw63-mt-x32-1_72 -o Source.exe

但是得到错误:

Source.o:Source.cpp:(.text+0x17): undefined reference to `boost::iostreams::zlib::default_compression'
collect2.exe: error: ld returned 1 exit status

看来iostreams的构建不正确如何检查boost_iostreams-mgw63-mt-x32-1_72是否构建良好?或者我有什么问题我使用以下命令构建iostreams:

D:boost_1_72_0>b2 -a -q -j8 address-model=32 link=static threading=multi toolset=gcc runtime-link=shared variant=release --with-iostreams -sBZIP2_SOURCE="C:Program Files (x86)GnuWin32" -sZLIB_SOURCE="C:Program Files (x86)GnuWin32"

好的,我解决了这个问题。相反,_SOURCE I手动指定_INCLUDE_LIBPATH目录。b2 -a -q -j8 address-model=32 link=static threading=multi toolset=gcc runtime-link=shared variant=release --with-iostreams -sZLIB_INCLUDE="C:Program Files (x86)GnuWin32include" -sZLIB_LIBPATH="C:Program Files (x86)GnuWin32lib" -sBZIP2_INCLUDE="C:Program Files (x86)GnuWin32include" -sBZIP2_LIBPATH="C:Program Files (x86)GnuWin32lib"