我正在Qt 5.5上开发一个简单的应用程序。由于Qt 5.5没有QChart类功能,我不得不在5.8发行版上安装和构建我的Qt 5.5项目。对于我的项目,我使用名为QXlsx的第三方软件来创建和编辑Excel电子表格。这个库在Qt 5.5中完美运行,但无法在Qt 5.8版本上编译。编译返回以下错误;Qt 5.8中的Qt 5.5项目构建错误
/Users/Vino/Documents/My Stuff/Qt Projects/Fundemental Analysis/FundementalAnalysis/3rdparty/qtxlsx/src/xlsx/xlsxzipreader.cpp:52: error: implicit instantiation of undefined template 'QVector<QZipReader::FileInfo>' QList<QZipReader::FileInfo> allFiles = m_reader->fileInfoList(); ^
我不知道这意味着什么,但我很有信心,我没有因为Qt的5.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
在此功能发生错误的源代码;
void ZipReader::init()
{
QList<QZipReader::FileInfo> allFiles = m_reader->fileInfoList();
foreach (const QZipReader::FileInfo &fi, allFiles)
{
if (fi.isFile)
m_filePaths.append(fi.filePath);
}
}
因此,作为一个解决方案,我尝试添加#include <QList>
的源代码,因为QList
与指定标题引用,但这并不解决问题。 当我添加#include <QList>
,一个新的无数的错误弹出。我怎样才能建立这个项目?