Я могу подтвердить ту же проблему.
Нет проблем с распаковкой файла lzma с помощью других инструментов. В игре может быть что-то версионное или может быть ошибка. Вот очищенная версия кода, которая не имеет такого большого количества шума, раздувает какой-то сомнительный стиль (using namespace std
) и пытается получить больше информации об ошибках:
#include <boost/iostreams/copy.hpp>
#include <boost/iostreams/filter/lzma.hpp>
#include <boost/iostreams/filtering_stream.hpp>
#include <boost/exception/diagnostic_information.hpp>
#include <fstream>
#include <iostream>
namespace io = boost::iostreams;
void foo(std::string input_file_path, std::string output_file_path) {
namespace io = boost::iostreams;
std::ifstream file(input_file_path, std::ios::binary);
std::ofstream out(output_file_path, std::ios::binary);
boost::iostreams::filtering_istreambuf in;
in.push(io::lzma_decompressor());
in.push(file);
try {
io::copy(in, out);
} catch(io::lzma_error const& e) {
std::cout << boost::diagnostic_information(e, true);
std::cout << e.code() << ": " << e.code().message() << "\n";
} catch(boost::exception const& e) {
std::cout << boost::diagnostic_information(e, true);
}
}
int main() {
foo("test.cpp.lzma", "output.txt");
}
В моей системе я убедился, что и тестовая программа, и / usr / bin / lzma ссылаются на одну и ту же версию библиотеки, поэтому проблемы с версионированием на данный момент кажутся довольно маловероятными:

Я думаю, что о проблеме следует сообщать в восходящем направлении (на boost Trac , в списке рассылки или github проблема )