版本:Qt Creator 5.4.0_mingw
QT编写串口助手
1、extra qualification 'Widget::' on member ’ConvertHexChar‘ [-fpermissive]
error: extra qualification 'Widget::' on member 'ConvertHexChar' [-fpermissive char Widget::ConvertHexChar(char ch);
原因是: 在Widget 类的定义中把声明函数写成了 charWidget::ConvertHexChar(charch);
在类中应该写 char ConvertHexChar(charch); 所以在使用不同版本的编译器时,最好保证自己的代码在高版本的编译器下没有问题.
2、Cannot find file: E:\2016--\研究生课件\机电系统分析与设计\zuoye\QSerialPort_2_Hex_1\QSerialPort_1.pro.
15:19:22: 进程"C:\Qt\Qt5.4.0_mingw\5.4\mingw491_32\bin\qmake.exe"退出,退出代码 2 。
Error while building/deploying project QSerialPort_1 (kit: Desktop Qt 5.4.0 MinGW 32bit)
When executing step "qmake"
15:19:22: Elapsed time: 00:00.
原因是:Qt不支持中文的路径,把源码的路径全部改成英文即可解决问题。
QT Creator对大于带有两个空格的目录和中文命名的目录不支持!!
究其原因 应该是qmake对带有空格的目录和中文命名的目录不支持!!
QT环境下利用OpenGL绘制三维图形
3、error: 'class QApplication' has no member named 'setMainWidget'
错误:在类QApplication里面没有找到 setMainWidget 成员
原因:Qt 3.x支持setMainWidget,但是Qt4以后的高版本已经取消了对setMainWidget的支持
4、error: no matching function for call to 'widget::widget(int,int,bool&)'
错误:调用“widget :: widget(int,int,bool&)”没有匹配函数
原因:构造函数有带参数和不带参数两种类型。比如带参数的构造函数。实际用的时候却带了参数,这时候就无法匹配函数了
5、moc_widget.cpp:-1: error: undefined reference to 'Widget::mouseDoubleClickEvent(QMouseEvent*)'
moc_widget.cpp:-1:错误:未定义的引用“Widget :: mouseDoubleClickEvent(QMouseEvent *)”
collect2.exe:-1: error: error: ld returned 1 exit status
collect2.exe:-1:错误:错误:ld返回1退出状态
原因:头文件中定义了函数void mouseDoubleClickEvent(QMouseEvent*),源文件中并没有使用它。删除头文件的该函数就ok
6、error: undefined reference to `vtable for GLWidget'
原因是出现一个类的多继承问题,一个类可以有多个继承关系,但是中间出现了错误,参见qt creator创建类,然后自己再改写。