QT错误

QT错误

错误:QJsonObject: No such file or directory

因为这个项目的文件夹里没有QJsonObject这个库。引用时用的是

#include <QJsonObject>

有两种解决办法:

  1. 把尖括号<>改成引号加.h的形式,即
#include "QJsonObject.h"
  1. 去QT的安装目录下找到include里面的QtCore文件夹,找到所需的QtJsonObject.h及其同名文件,复制到项目文件夹

我把 QT安装在D盘。所以我的文件路径如下:
D:\QT\5.14.2\msvc2017_64\include\QtCore
其中 msvc2017_64 换成 msvc2015_64 也可以,不太懂,看来两种编译器里这个库是一样的。

⚠ 注意两个文件都要复制,只复制.h文件没有用。

参考:link

错误:When executing step “qmake”

编译输出栏跳出红字的错误信息。网上看解决方案也看不懂。但是因为要打开的程序是别人的,我可以多次下载所以我又下载了一遍
最后解决方法:打开文件,跳出选择编译器的界面(因为这个程序的作者和我用的不是同一个版本),能选的全都选上,再编译就没有问题了

错误:calling ‘debug’ with incomplete return type ‘QDebug’

没引入头文件。include一下QDebug就好了

传路径过来打不开文件

注意看路径:
1.有没有少标点符号,比如/
2.有没有漏掉异层节点,比如把/aa/bb/cc打成/aa/cc

错误:Unexpected ‘else’. 和 AND operator without prior condition.

目前不是很懂,但是我之前手动在.pro文件里面增加了如下语句:

LIBS += -lopengl32\
        -lglu32\
        -lglut\

只要把这段删除就好了
但是这里删除后面就没法用openGL了,所以又找到两种解决方案(虽然我不清楚原理)

  1. 在LIBS前面加上win32:
 win32:LIBS += -lopengl32\
               -lglu32\
               -lglut\
  1. 把后面的\去掉(这步之前我按照网上的教程配置了freeglut,不知道有没有影响)
 LIBS += -lopengl32
         -lglu32
         -lglut

错误:collect2:ld returned 1 exit status

之前学C语言的时候经常遇到这个问题,都是因为exe程序还在运行,只要关掉小黑框或者程序关掉再打开就可以了。但是这次无论如何都不行。查找了一篇博客link 之后找到了原因:头文件中定义的函数在对应的,cpp文件中没有实现(空函数体也算实现,有就行)

错误:undefined reference to `MainWindow::on_map_control_aboutToCompose()’

一个槽函数出这个错,可能是因为在ui编辑界面点击转到槽,然后跳到cpp文件让你继续写这个槽函数,但是你不想要这个槽了所以就把默认给的这段cpp函数实现删掉了
但是mainwindow.h头文件里面还留着这个槽函数的声明,就会出现声明未定义的情况。这时候再去头文件找到这条声明删掉就好了。

这个错误信息点进去会跳到moc_mainwindow.cpp并且显示是switch语句里面的一个case找不到,这语句里所有的case都是选过的信号。如果直接把报错这个case注释掉好像也可以。

void MainWindow::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
    if (_c == QMetaObject::InvokeMetaMethod) {
        auto *_t = static_cast<MainWindow *>(_o);
        Q_UNUSED(_t)
        switch (_id) {
        case 0: _t->on_action_open_sld_triggered(); break;
        case 1: _t->on_actionopen_txt_triggered(); break;
        default: ;
        }
    }
}
这不会就是帮忙审查有没有声明未定义函数的东西吧...
保持和头文件一致,以这个取衡量cpp。
所以最后其实在对比这些case和cpp文件是不是匹配。
故只在这里删除也是可以的,哪怕头文件里还留有残余。
  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值