C++11 Qt Creator与MinGW';运算符'不匹配;错误

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

为了在Windows中部署我的项目,我从Linux获得了Qt项目,并将所有源文件粘贴到Windows 7 VM VirtualBox上,并尝试在那里构建它

不幸的是,我有以下错误,我无法找到一种方法来修复。Qt创建者很好地编译了附带的示例项目,但是在我的项目中,它会在MinGW线程头上弹出错误。

My.pro文件:

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==()

      一般来说,您有两种选择:

      • 使用运算符重载实现
        运算符==
      • 找到另一个不需要像这样进行比较的解决方案

      问题是在MinGW lib文件上出现错误问题是在MinGW lib文件上出现错误