C++ 使用boost::iostreams时崩溃

C++ 使用boost::iostreams时崩溃,c++,boost,gzip,boost-iostreams,compression,C++,Boost,Gzip,Boost Iostreams,Compression,我正在尝试使用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_de

我正在尝试使用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;
}
试试看{
使用名称空间boost::iostreams;
ifstream文件(argv[1],std::ios_base::in | std::ios_base::binary);
boost::iostreams::filtering\u istream in;
in.push(gzip_decompressor());
in.push(文件);
std::stringstream stream;
boost::iostreams::copy(in,strstream);
}捕获(标准::异常&e){

我发现了问题:苹果的LLVM编译器。 我确信我使用的是GCC,但似乎不是

我发现这一点是因为我遇到了另一个奇怪的崩溃,这是通过实例化一个
std::string
对象发生的。这让我检查了项目设置,在那里我发现我使用的是LLVM编译器,它可能不喜欢我链接gcc构建的库


谢谢你的回复。

我发现了问题:苹果的LLVM编译器。 我确信我使用的是GCC,但似乎不是

我发现这一点是因为我遇到了另一个奇怪的崩溃,这是通过实例化一个
std::string
对象发生的。这让我检查了项目设置,在那里我发现我使用的是LLVM编译器,它可能不喜欢我链接gcc构建的库


感谢您的回复。

您能附加一个调试器并发布崩溃的堆栈跟踪吗?您确认argv[1]实际上指向了一个文件吗?@Zac the gzip_decompressor()崩溃与提供的argv无关。但是,它指向正确的文件路径。您可以附加调试器并发布崩溃的堆栈跟踪吗?您确认argv[1]实际指向文件了吗?@Zac the gzip_decompressor()崩溃与提供的argv无关。不过,它指向正确的文件路径。