Я строю следующий код:
#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_0\stage\lib -lboost_iostreams-mgw63-mt-x32-1_72 -o Source.exe
И это работает, но только если boost_iostreams-mgw63-mt-x32-1_72 является общей библиотекой , Если я попытаюсь использовать библиотеку stati c, она выдаст мне следующую ошибку: D:\boost_1_72_0\stage\lib/libboost_iostreams-mgw63-mt-x32-1_72.a(zlib.o):zlib.cpp:(.text+0x124): undefined reference to crc32'
Я создаю библиотеку stati c с помощью следующей команды: 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)\GnuWin32\include" -sZLIB_LIBPATH="C:\Program Files (x86)\GnuWin32\lib" -sBZIP2_INCLUDE="C:\Program Files (x86)\GnuWin32\include" -sBZIP2_LIBPATH="C:\Program Files (x86)\GnuWin32\lib"
Если Я изменяю link = stai c на link = shared, а затем копирую dll в папку проекта - все будет хорошо. Но я хочу, чтобы программа работала без библиотек.
В чем проблема? Как запустить и собрать программу без общих библиотек?