We recently upgraded from Boost 1.34.1 to 1.46.1 and moved from Visual Studio 2005 to VS 2010. We have an application that uses the Gzip decompression feature. The implementation includes these lines:

 

Declaration:

#include <boost/iostreams/device/file_descriptor.hpp>

#include <boost/iostreams/filtering_stream.hpp>

#include <boost/iostreams/device/file.hpp>

#include <boost/iostreams/filter/gzip.hpp>

boost::iostreams::filtering_streambuf<boost::iostreams::input> m_filter_stream;

 

Executed code:

m_filter_stream.push(io::gzip_decompressor());

m_filter_stream.push(m_file);

 

m_input_stream = new istream(&m_filter_stream);

m_input_stream->read((char*)m_buffer, BUFSIZE);

 

The application linked without errors against the 1.34.1 library using VS 2005, but with 1.46.1 and VS 2010 we get four unresolved external symbols:

public: void __cdecl boost::iostreams::detail::gzip_footer::process(char)

public: void __cdecl boost::iostreams::detail::gzip_footer::reset(void)

public: void __cdecl boost::iostreams::detail::gzip_header::process(char)

public: void __cdecl boost::iostreams::detail::gzip_header::reset(void)

 

The build is done on Windows XP x64 using the Boost 64-bit Windows binaries downloaded from http://boost.teeks99.com. The zlib binaries are also linked. Can someone suggest what the problem might be?