您的位置:首页 > 编程语言 > Qt开发

Qt编译错误

2017-06-26 17:26 477 查看
问题:moc_CQFlexWindowBase.cpp:-1: error: undefined reference to `Class::function'

未找到文件moc_xxxcpp

解决:父类中定义了虚函数CQWindgetViewBase_SlideL2R,子类声明了该函数但是没有实现。实现后解决问题。

问题:undefined reference to `vtable for  xxx'

解决:当派生类基于QObject并且在头文件中加入Q_OBJECT后,就出现了该问题。原因是创建该类的时候,没有选择继承QObject或者Object的Qt派生类,所以Qt没有创建相应的moc_xxx文件。

1.删除该类重新创建,并且选择继承QObject,创建完成后将QObject替换为要继承的类。

2.移除该类,并且重新添加。


问题:定义了QList<QList<QWidget>> *m_pWidget;编译后报出'>>' should be '> >' within a nested template argument list

解决:C++不支持连续的<<或>>符号,所以在>>中间加入空格,解决问题。

问题:'constexpr' needed for in-class initialization of static data member 在类的内部初始化非int和bool类型的静态变量报错

解决:在不能通过的静态变量前加入‘constexpr’声明即可,详见http://www.cnblogs.com/wanyuanchun/p/4041080.html。

问题:在非UI线程中定义一个信号使用了自定义类型的Signal并连接到槽函数,运行过程中提示“Cannot queue arguments of type 'QSerialPort::DataBits'”,槽函数不能被调用。

解决:使用qRegisterMetaType<T>("T");函数向元系统注册自定义类型,解决问题。

问题:1.RTTI symbol not found for class 'QThread'  2.QThread: Destroyed while thread is still running

分析:在退出程序的时候没有退出相应的线程和线程的循环run。

解决:1.在线程所在类的析构函数中加入run的退出条件 2.依次调用quit();wait();退出线程并且等待线程退出完毕。问题解决

问题:collect2: error: ld returned 1 exit status

解决:在工程的.pro文件中,同一个头文件被添加了多次,删除多余的只保留一个,编译通过。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: