qt 编译错误集

1.error: reference to 'statusBar' is ambiguous
             statusBar()->showMessage(mySerialPort->portName() + " is opened", 2000);
             ^~~~~~~~~
解决:用成员*变量*名称来调用方法QMainWindow::statusBar()
Ui_MainWindow::statusBar
2.error: undefined reference to
 `__imp__ZN11QSerialPort11setBaudRateEi6QFlagsINS_9DirectionEE'
解决:在.pro工程文件加入串口类 QT += serialport
3.使用hidapi 库 的hid_write 函数 错误。
解决:返回0x57, 发送的第一字节要加上报表描述符(Report ID).
4.clang++.exe:-1: error: error: linker command failed with exit code 1
 (use -v to see invocation)
未找到文件: clang++.exe
解决:private slots 槽函数声明 未定义会报错
5. error: member access into incomplete type 'QKeyEvent'(
错误:成员访问到不完整类型'QKeyEvent')
解决:加头文件 #include<QKeyEvent>
6.QObject::connect: No such slot xxx错误提示
解决:这是因为在自己的派生类中没有加入Q_OBJECT.
只有加入Q_OBJECT才能允许自己的派生类中添加信号与槽机制。
7.error: undefined reference to `vtable for MyColorButton'
分析:如果使用QtCreator创建类时,没有选择继承自QObject类或其子类,
而在创建后手工修改继承自QObject并手工添加Q_OBJECT宏,则在编译时有
可能会出现”undefined reference to `vtable for’…….”错误.

解决:把新创建的类从项目中移除(主要不要从磁盘上删除),然后再添加进
功能,QtCreator就会重新解析此类,再编译就不再会出现上述错误
8.QT Modbus ASSERT failure in processQueue: “response timer active“

问题:当我在QT中用modbus读取函数时,出现程序卡死的问题。
分析:每次读取有概率出现这个情况。当读取时,触发读取寄存器的操作,同时跨线程触发了消息提示框的弹出(必须跨线程调用才会出现这个问题)。这个问题不是每次点击都会出现,有几率触发。
解决:不要在读取modbus的时候,跨线程调用QMessageBox::exec()函数,及qDebug打印函数;
9.ModbusRTU模式,正常调用Qt的QModbusRtuSerialMaster库时崩溃
问题:崩溃显示
ASSERT failure in processQueue: "send timer active", file qmodbusrtuserialmaster_p.h, line 301
或者
ASSERT failure in processQueue: "response timer active ", file qmodbusrtuserialmaster_p.h, line 302
或者
ASSERT failure in processQueue: "unexpected state: ", file qmodbusrtuserialmaster_p.h, line 377

分析:原因不明,BUG源于QModbusRtuSerialMaster这个类,Qt官方5.13已修复。Qt5.8--Qt5.12都存在这个BUG。
解决:升级版本

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值