叶海

好记性不如烂笔头

Qt5.x报错记录

1.compiler is out of heap space

Qt5.7+vs2013 在windows平台下qrc_images.cpp(源文件images.qrc)的大小超过30M就报fatal error C1060: compiler is out of heap space错误。
解决方法:把一个qrc文件拆成多个qrc解决的,最终qrc_images.cpp 22.2M通过编译
Qt5.7 MinGW编译器则没有这个限制。

2.run中new要在线程中释放

环境qt5.x MinGW ExcelThread线程 pExcelEngine一个读写Excel的类class ExcelEngine : public QObject 其中 pExcel = new QAxObject(“Excel.Application”);
如果把pExcelEngine = new ExcelEngine;放入init函数中则会报错(错误信息忘记记录了。。。)
,放到run()中则不会。

bool ExcelThread::init(int quetypeid,
                       const QString xls)
{
    bool isok = true;
    queTypeId = quetypeid;
    xlsName = xls;
    return isok;
}
void ExcelThread::run()
{
    int ret = -1;
    if(pExcelEngine){
        delete pExcelEngine;
    }
    pExcelEngine = new ExcelEngine;
connect(pExcelEngine,SIGNAL(sendExcelData(QuestionData*,int)),
            this,SLOT(receiveExcelData(QuestionData*,int)));
    pExcelEngine->setSXlsFile(xlsName);
    pExcelEngine->setExcelType(queTypeId);
    int sheet = 1;
    bool isopen = pExcelEngine->Open(sheet,false);
......
}

成员变量在线程run()运行无法赋值,必须声明为static变量
.h 文件中 static QString _v;
.cpp文件构造函数上方QString 类名::_v = “”;

3.枚举到字符串

这里写图片描述

4.Qt 共享库和Plugin不容易查的错误

这里写图片描述
–Plugin:找不到指定模块。1.路径错误 2.路径正确的情况下是否使用第三方库LIBS +=-L$$PWD/ -lxx
表示第三库的dll没有放入指定路径
–上图找不到BaseWidget.h 查看最后加载哪个.cpp文件图片:mainwindow.cpp
再在pro文件中加入缺失BaseClass/BaseClass.pri

下面的错误头文件明明已经加了,还提示找不到,查看提示是蓝色框框中的文件头文件没加pri(多项目编程最常见的错误)需要把当前的头文件路径加到蓝色框文件项目中。
这里写图片描述

5.[Qt Creator的问题]Cannot retrieve debugging output

,两个IDE(同一qt版本打开2次及以上)同时打开,后打开的会出现这个情况
解决方案:
只打开一个IDE。(一个qt版本只打开一次)

6.setMouseGrabEnabled: Not setting mouse grab for invisible window QWidgetWindow/’QMenuClassWindow’

setMouseGrabEnabled: Not setting mouse grab for invisible window QWidgetWindow/’QMenuClassWindow’
QMenu类中没有QAction时会报

7.【定时器.start()后内存无限涨再释放再涨】

原因:一个定时器周期内函数执行时间超过了定时器则.start()后无限涨内存。
解决方案:减少函数执行周期,提前new要使用的对象,优化执行时间.

8.error: undefined reference to `__imp_select’

error: undefined reference to `__WSAFDIsSet’

解决:pro文件中加入: LIBS += -lws2_32 【类似的错误百度缺少的库】

9. Qt多子项目套子项目时

这里写图片描述
解决:缩短项目文件及文件夹名称【编译路径太长了】

10.QT g++: error: unrecognized command line option ‘-R’

qt:错误:无法识别的命令行选项“r”
解决:查找pro,发现应该是【LIBS += -lRo模块名】错写成【-Ro模块名】(可能是我的模块的首字母是R才报-R的)

11. uint”: 不明确的符号

出现这种错误是因为引用的第三方库也对uint进行了声明与qt中的uint声明引起编译器错误(编译器不知道编译时用哪个声明编译)
//以谷歌的protobuf引起这个错误为例
解决方式:查找using namespace google::protobuf;注释掉
使用下列方式指定
google::protobuf::RepeatedPtrField

12. WebEngineContext used before QtWebEngine::initialize() or OpenGL context creation failed

出现情况:vs2015+Qt5.9.4 使用QWebEngineView类,选择32bit编译时正常, 选择64bit编译出现上述错误,并崩溃
解决方法:在new QWebEngineView前 加上QCoreApplication::setAttribute(Qt::AA_UseOpenGLES);

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012020854/article/details/52367974
个人分类: Qt5
想对作者说点什么? 我来说一句

QT+OPENCV+Cmake安装文档

QT安装

u010847519 u010847519

2017-03-10 13:45:58

阅读数:1335

没有更多推荐了,返回首页

不良信息举报

Qt5.x报错记录

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭