Good afternoon,
Hello everyone, I am new to this forum and new to *Boost* and *CMake* but
eager to learn.
So please forgive if this is a dumb question, but I am new to *Boost* and
*CMake*.
I have had success using *Boost.Iostreams* with Linux OS and CMake using
*CPMPackageAdd* call
for *boost_iostreams* library using compression and decompression with the
following
C++ code (the exact line of code that generates the error is shown below):
#include
#include
#include
#include
#include <vector>
#include <string>
#include <iostream>
#include <cstdlib>
using namespace boost::iostreams;
int main(int argc, char *argv[]) {
// ---------------------------------
// - COMPRESS DATA -
// ---------------------------------
std::vector<char> v;
back_insert_device snk{v};
filtering_ostream os;
os.push(zlib_compressor{}); // This results in the Windows error zlib
os.push(snk);
os << "Boost" << std::flush;
os.pop();
// ---------------------------------
// - DECOMPRESS DATA -
// ---------------------------------
array_source src{v.data(), v.size()};
filtering_istream is;
is.push(zlib_decompressor{});
is.push(src);
std::string s;
is >> s;
std::cout << s << '\n';
return EXIT_SUCCESS;
}
However, when I try to use the same code on a Windows machine with MSVC
compiler it generates errors explaining that* boost::iostreams::zlib is
undefined *during linking.
I am using *CMakeLists.txt* and would like to know if I can use *CMake* to
properly build/compile for both Windows OS and Linux such that I can use
the boost iostreams library with maybe an option in the *CPMAddPackage*
call (maybe?). Is this possible? Can anyone point me in the correct
direction with some simple example(s) if possible or links to existing
solutions/hints to this same issue?
I appreciate any assistance with this. Thank you for your time.