C++ Qt5.8中的Qt5.5项目生成错误

C++ Qt5.8中的Qt5.5项目生成错误,c++,qt,qlist,C++,Qt,Qlist,我正在Qt5.5上开发一个简单的应用程序。由于Qt5.5没有类特性,我不得不在5.8发行版上安装并构建Qt5.5项目。对于我的项目,我使用第三方软件创建和编辑Excel电子表格。该库在Qt5.5中工作正常,但未能在Qt5.8版本上编译。编译返回以下错误: /Users/Vino/Documents/My Stuff/Qt Projects/fundamental Analysis/fundamental Analysis/3rdparty/qtxlsx/src/xlsx/xlsxzipreade

我正在Qt5.5上开发一个简单的应用程序。由于Qt5.5没有类特性,我不得不在5.8发行版上安装并构建Qt5.5项目。对于我的项目,我使用第三方软件创建和编辑Excel电子表格。该库在Qt5.5中工作正常,但未能在Qt5.8版本上编译。编译返回以下错误:

/Users/Vino/Documents/My Stuff/Qt Projects/fundamental Analysis/fundamental Analysis/3rdparty/qtxlsx/src/xlsx/xlsxzipreader.cpp:52:错误:未定义模板“QVector”的隐式实例化
QList allFiles=m_reader->fileInfoList();
^
我不知道它是什么意思,但我很有信心,我不必对这个库的源代码做任何更改,因为它以前在Qt5.5上工作过

无论如何,这是发生错误的源代码

#include "xlsxzipreader_p.h"
#include <private/qzipreader_p.h>



namespace QXlsx {

    ZipReader::ZipReader(const QString &filePath) :
    m_reader(new QZipReader(filePath))
    {
         init();
    }

    ZipReader::ZipReader(QIODevice *device) :
    m_reader(new QZipReader(device))
    {
         init();
    }

    ZipReader::~ZipReader()
    {

    }

    void ZipReader::init()
    {
           QList<QZipReader::FileInfo> allFiles = m_reader->fileInfoList();
           foreach (const QZipReader::FileInfo &fi, allFiles) {
           if (fi.isFile)
                 m_filePaths.append(fi.filePath);
    }
}

     bool ZipReader::exists() const
     {
           return m_reader->exists();
     }

    QStringList ZipReader::filePaths() const
    {
       return m_filePaths;
    }

    QByteArray ZipReader::fileData(const QString &fileName) const
    {
         return m_reader->fileData(fileName);
    }
}// namespace Xlsx
#包括“xlsxzipreader\u p.h”
#包括
名称空间QXlsx{
ZipReader::ZipReader(常量QString和文件路径):
m_读卡器(新QZipReader(文件路径))
{
init();
}
ZipReader::ZipReader(QIODevice*设备):
m_读卡器(新QZipReader(设备))
{
init();
}
ZipReader::~ZipReader()
{
}
void ZipReader::init()
{
QList allFiles=m_reader->fileInfoList();
foreach(const QZipReader::FileInfo&fi,所有文件){
if(fi.isFile)
m_filePath.append(fi.filePath);
}
}
bool ZipReader::exists()常量
{
返回m_reader->exists();
}
QStringList ZipReader::filepath()常量
{
返回m_文件路径;
}
QByteArray ZipReader::fileData(常量QString和fileName)常量
{
返回m_reader->fileData(文件名);
}
}//名称空间Xlsx
此函数出现错误

    void ZipReader::init()
    {
         QList<QZipReader::FileInfo> allFiles = m_reader->fileInfoList();
         foreach (const QZipReader::FileInfo &fi, allFiles) 
         {
              if (fi.isFile)
              m_filePaths.append(fi.filePath);
         }
    }
void ZipReader::init()
{
QList allFiles=m_reader->fileInfoList();
foreach(const QZipReader::FileInfo&fi,所有文件)
{
if(fi.isFile)
m_filePath.append(fi.filePath);
}
}

因此,作为一种解决方案,我尝试将
#include
添加到源代码中,因为
是通过指定标题引用的,但这并不能解决问题当我添加
#include
时,出现了无数新的错误。我如何建立这个项目?

所以我解决了我的问题;我使用的是最旧版本的QXlsx,根据这一点,gitHub上有许多新的修订版。安装新版本解决了这个问题



所以我解决了我的问题;我使用的是最旧版本的QXlsx,根据这一点,gitHub上有许多新的修订版。安装新版本解决了这个问题



QtXLSX的错误尚未解决

解决办法很简单

在xlsxzipreader.cpp文件中,必须包括:

#include <QVector>
这已经在Qt 5.8.x和5.9.x上进行了测试


干杯

QtXLSX的错误尚未解决

解决办法很简单

在xlsxzipreader.cpp文件中,必须包括:

#include <QVector>
这已经在Qt 5.8.x和5.9.x上进行了测试

干杯

make
make install