C++11 Qt Creator与MinGW';运算符'不匹配;错误
为了在Windows中部署我的项目,我从Linux获得了Qt项目,并将所有源文件粘贴到Windows 7 VM VirtualBox上,并尝试在那里构建它 不幸的是,我有以下错误,我无法找到一种方法来修复。Qt创建者很好地编译了附带的示例项目,但是在我的项目中,它会在MinGW线程头上弹出错误。 My.pro文件:C++11 Qt Creator与MinGW';运算符'不匹配;错误,c++11,mingw,qt-creator,C++11,Mingw,Qt Creator,为了在Windows中部署我的项目,我从Linux获得了Qt项目,并将所有源文件粘贴到Windows 7 VM VirtualBox上,并尝试在那里构建它 不幸的是,我有以下错误,我无法找到一种方法来修复。Qt创建者很好地编译了附带的示例项目,但是在我的项目中,它会在MinGW线程头上弹出错误。 My.pro文件: QT += core gui QMAKE_CXXFLAGS += -IC:\Users\BRUDEL\Desktop\postgresql\include -fper
QT += core gui
QMAKE_CXXFLAGS += -IC:\Users\BRUDEL\Desktop\postgresql\include -fpermissive
QMAKE_LFLAGS += -LC:\Users\BRUDEL\Desktop\postgresql\lib -llibpq
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = RaqMed
TEMPLATE = app
CONFIG += c++11
# You can make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
SOURCES += \
addappointmentform.cpp \
addpatientform.cpp \
appointmentwidget.cpp \
bstring.cpp \
calendar.cpp \
edittabmodel.cpp \
main.cpp \
patient.cpp \
patientbdmodel.cpp \
patientdelegate.cpp \
patientlineedit.cpp \
qutils.cpp
HEADERS += \
addappointmentform.h \
addpatientform.h \
appointmentwidget.h \
bstring.h \
calendar.h \
edittabmodel.h \
patient.h \
patientbdmodel.h \
patientdelegate.h \
patientlineedit.h \
qutils.h
# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target
RESOURCES += \
teste.qrc
FORMS += \
calendar.ui \
testes.ui
DISTFILES += \
capa.png \
icon0.png \
icon2.png
我只安装了Qt Creator的以下模块
Qt 5.15.1
MinGW 8.1.0 64位Qt图表
Qt调试信息文件 开发人员和设计人员工具 Qt Creator 4.13.1 CDB调试器支持
Windows调试工具
MinGW 8.1.0 64位
Qt安装程序框架3.2
CMake 3.17.1 64位 忍者1.10.0 我发现这个类似的问题没有答案 我在打开Qt Creator时也会收到这些消息 谢谢,并为任何张贴错误感到抱歉,我不习惯英语写作 Edit我已经通过将环境变量QT_OPENGL设置为“OPENGL”解决了插件错误,但编译错误仍然存在
编辑2我复制线程头文件并对问题函数进行注释,现在它开始工作:)问题正是编译器所说的:
return __x._M_thread == __y._M_thread;
它不知道如何比较对象,因为没有实现operator==()
一般来说,您有两种选择:
- 使用运算符重载实现
运算符==
- 找到另一个不需要像这样进行比较的解决方案
- 问题恰恰在于编译器所说的:
return __x._M_thread == __y._M_thread;
它不知道如何比较对象,因为没有实现operator==()
一般来说,您有两种选择:
- 使用运算符重载实现
运算符==
- 找到另一个不需要像这样进行比较的解决方案