Включает ли повышение Ubuntu 18.04 поддержку lzma?C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Включает ли повышение Ubuntu 18.04 поддержку lzma?

Сообщение Anonymous »

У меня есть кусок программного обеспечения C ++, в котором используется декомпрессор Bzip2 на Boost :: iostreams :: filtering_istreambuf. Это работает хорошо. < /P>

Я теперь пытался изменить его, чтобы также поддержать декомпрессию LZMA. Соответствующий включает файл, кажется, есть в моей установке Ubuntu 18.04: < /p>

$ ls -al /usr/include/boost/iostreams/filter/
-rw-r--r-- 1 root root 13199 Mar 6 2018 bzip2.hpp
-rw-r--r-- 1 root root 24804 Mar 6 2018 gzip.hpp
-rw-r--r-- 1 root root 12157 Mar 6 2018 lzma.hpp
-rw-r--r-- 1 root root 14650 Mar 6 2018 zlib.hpp
(shortened)
< /code>

Однако код не ссылается, я получаю сообщения об ошибках следующим образом: < /p>

In function `boost::iostreams::detail::lzma_decompressor_impl::lzma_decompressor_impl()':
test2.cpp:(.text._ZN5boost9iostreams6detail22lzma_decompressor_implISaIcEEC2Ev[_ZN5boost9iostreams6detail22lzma_decompressor_implISaIcEEC5Ev]+0x24): undefined reference to `boost::iostreams::detail::lzma_base::lzma_base()'
(etc)


Теперь мне интересно, была ли поставляемая библиотека Boost построена без поддержки lzma (но тогда почему существует включаемый файл lzma?). В более общем плане мне интересно, могу ли я (и как) проверить параметры сборки, которые использовались для поставляемой библиотеки повышения.

Я понимаю, что могу собрать свою библиотеку повышения. с нуля, но буду делать это только в том случае, если мне действительно нужно.

Обновление: мой код более сложен, но ниже приведен минимальный пример, по существу взятый отсюда, который демонстрирует проблема:

Это работает:

#include
#include
#include
#include
#include

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::bzip2_decompressor());
in.push(file);

io::copy(in, out);
}

int main() {
foo("test.cpp.bz2", "output.txt");
}


Это не компилируется (с g++ test.cpp -lboost_iostreams):

#include
#include
#include
#include
#include

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);

io::copy(in, out);
}

int main() {
foo("test.cpp.lzma", "output.txt");
}


Подробнее здесь: https://stackoverflow.com/questions/586 ... ma-support
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Установка/компиляция pylzma (привязка lzma к Python)
    Anonymous » » в форуме Python
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • Предупреждение пользователя: не удалось импортировать модуль lzma. Ваш установленный Python неполный
    Anonymous » » в форуме Python
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Ошибка данных Python LZMA при попытке распаковки повреждена
    Anonymous » » в форуме Python
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Проблема с файлами jupiter tessellation (JT) с сжатием LZMA
    Anonymous » » в форуме C#
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Проблема с декодированием LZMA сжатие ZIP -файла в Java с использованием Apache Common Compress/org.tukaani.xz
    Anonymous » » в форуме JAVA
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C++»