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