【问题标题】:Quazip throws an error on Mac 10.9, Qt 5.4 and clang(64 bit)Quazip 在 Mac 10.9、Qt 5.4 和 clang(64 位)上抛出错误
【发布时间】:2015-11-25 20:11:57
【问题描述】:

我正在尝试在我的 Qt 5.4 项目中使用 Quazip 0.7.1(在同一台机器上使用 clang 编译 Qt 5.4)来压缩存档中的文件。该代码在使用 MSVC 2012 编译器的 Windows 上运行良好,但是相同的代码在 Mac OSX 上崩溃并出现错误QIODevice::open file access not specified。下面是我的代码的 sn-p。

bool Utils::Archive(QList<QString> arrFiles, QString strFileName)
{
    QFile zipFile(strFileName);
    QuaZip zip(&zipFile);

    // CODE CRASHES HERE
    if(!zip.open(QuaZip::mdAppend))
    {
      qWarning("testCreate(): zip.open(): %d", zip.getZipError());
      return false;
    }

代码在 zip.open 调用时崩溃。任何建议/想法将不胜感激。 谢谢

【问题讨论】:

  • 请编辑问题以说明您使用的是哪个版本的 quazip(标记的版本,或者如果是 head 那么是什么版本)。
  • 我正在使用从 SourceForge 项目页面下载的 v0.7.1。 sourceforge.net/projects/quazip/files/quazip

标签: c++ macos qt clang quazip


【解决方案1】:

嗯,这是我的代码,它工作得很好,并且通过将它与你在 Quazip 文件之前在 Quazip 对象上调用 open 进行比较,也许可以试试这个,就像我说它对我有用。我正在使用 mdCreate,但我确定这也适用于 mdappend

// Create new zip file to store the file.
auto zip_file(new QuaZip(file_path.string().c_str()));
if(zip_file->open(QuaZip::mdCreate))
{
    QuaZipFile file(zip_file);

    if(file.open(QIODevice::WriteOnly, QuaZipNewInfo("something.xml")) == false)
    {
         // Error
    }
    else
    {
        // Do stuff...
    }

【讨论】:

    猜你喜欢
    • 2015-11-25
    • 1970-01-01
    • 1970-01-01
    • 2013-10-12
    • 2012-09-03
    • 1970-01-01
    • 2013-12-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多