Сбой при использовании boost :: iostreams

Я пытаюсь использовать boost :: iostreams (1.53.0), чтобы распаковать тело HTTP-запроса и позже обработать его.
Но я получаю сбой, когда я запускаю следующий код.

try {
using namespace boost::iostreams;
ifstream file(argv[1], std::ios_base::in | std::ios_base::binary);
boost::iostreams::filtering_istream in;
in.push(gzip_decompressor());
in.push(file);
std::stringstream strstream;
boost::iostreams::copy(in, strstream);
} catch (std::exception& e) {
cout << e.what() << endl;
}

Авария происходит в gzip_decompressor()более конкретно в gzip_header() { reset(); } из gzip.hpp boost (глядя на стек вызовов).

Я сам скомпилировал библиотеку boost :: iostreams, а также попытался использовать boost из macports, но происходит тот же сбой. Я также пытался использовать библиотека gzstream, но это также приводит к сбою в конструкторе, более конкретно в конструкторе igzstream,

Я склонен полагать, что это проблема, связанная с zlib.
Я не указывал, я использую MacBook Pro с Mountain Lion и xCode 4.6 для сборки и запуска кода.

Кто-нибудь из вас сталкивался с такой проблемой раньше?

1

Решение

Я обнаружил проблему: компилятор Apple LLVM.
Я был уверен, что использовал GCC, но, похоже, я не был.

Я обнаружил это, наткнувшись на еще одну странную аварию, которая произошла просто путем std::string объект. Это заставило меня проверить настройки проекта, где я обнаружил, что использую компилятор LLVM, который, вероятно, был недоволен тем, что я связывал библиотеки, собранные gcc.

Спасибо за ваши ответы.

1

Другие решения

Других решений пока нет …