Qt 5.7编译问题



  • QListQZipReader::FileInfo allFiles = m_reader->fileInfoList();
    这句编不过去,m_reader 的类型是QScopedPointer<QZipReader>。

    class Q_GUI_EXPORT QZipReader
    {
    public:
    explicit QZipReader(const QString &fileName, QIODevice::OpenMode mode = QIODevice::ReadOnly );

    explicit QZipReader(QIODevice *device);
    ~QZipReader();
    
    QIODevice* device() const;
    
    bool isReadable() const;
    bool exists() const;
    
    struct FileInfo
    {
        FileInfo() Q_DECL_NOTHROW
            : isDir(false), isFile(false), isSymLink(false), crc(0), size(0)
        {}
    
        bool isValid() const Q_DECL_NOTHROW { return isDir || isFile || isSymLink; }
    
        QString filePath;
        uint isDir : 1;
        uint isFile : 1;
        uint isSymLink : 1;
        QFile::Permissions permissions;
        uint crc;
        qint64 size;
        QDateTime lastModified;
    };
    
    ***QVector<FileInfo> fileInfoList() const;***
    

    因为上面这句,出现error: invalid use of incomplete type 'class QVectorQZipReader::FileInfo'
    QListQZipReader::FileInfo allFiles = m_reader->fileInfoList();
    ^
    }

    请问这样要怎么解决啊?


  • 网站研运



  • @vvLinker 提示无无法找到类实现。

    这里需要仔细注意,如果你是使用第三方库,不要忘记检查 Qt 的版本和其他依赖。这里看起来是某个 cpp 文件没有引用到这个头文件 。

    QZipReader::FileInfo 这个类型定义是在头文件中的。



  • Qt5.5和Qt5.6的QZipReader不一样。

    然而QZipReader是Qt的私有API,Qt不保证使用私有API的程序的API/ABI兼容性。
    编译不过是很正常的。


 

最近的回复

关注我们

微博
QQ群











召唤伊斯特瓦尔