Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. German
  4. Fehler mit Standardkonstruktor in qmutex.h
Forum Updated to NodeBB v4.3 + New Features

Fehler mit Standardkonstruktor in qmutex.h

Scheduled Pinned Locked Moved Unsolved German
18 Posts 4 Posters 2.1k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M makopo

    Hallo,

    in VS 2019 erhalte ich mit der Implementierung von QMutex die folgende Fehlermeldung.

    "E2422 Der Standardwert des Standardkonstruktors kann nicht constexpr sein, da der entsprechende implizit deklarierte Standardkonstruktor nicht constexpr wäre"

    Der Fehler soll in der Datei qmutex.h in Zeile 133 stehen. Das Programm lässt sich damit normal kompilieren, allerdings verhält es sich nicht so wie es soll und es könnte sein, das der QMutex der Grund ist.

    Ich vermute auch mal das die Ursache hierfür eine tieferliegende ist.

    Weiß jemand Rat?

    jsulmJ Offline
    jsulmJ Offline
    jsulm
    Lifetime Qt Champion
    wrote on last edited by
    #2

    @makopo Wo in deinem Code ist der Ursprung dieser Warnung? Kannst du die entsprächende Stelle im Code zeigen?

    https://forum.qt.io/topic/113070/qt-code-of-conduct

    M 1 Reply Last reply
    0
    • jsulmJ jsulm

      @makopo Wo in deinem Code ist der Ursprung dieser Warnung? Kannst du die entsprächende Stelle im Code zeigen?

      M Offline
      M Offline
      makopo
      wrote on last edited by makopo
      #3

      @jsulm
      Der Fehler wird nicht gemeldet, wenn ich alles was mit QMutex zu tun hat auskommentiere (also vor allem QMutex nicht inkludiere). EDIT: Das der Fehler nicht angezeigt wird wenn ich QMutex nicht einbinde ist ja normal. Habe ich gerade selbst gemerkt.. Knoten im Kopf^^

      Hier ein Ausschnitt wie es vor dem Auskommentieren aussah:

      // .h
      #include <QMutex>
      #include <QMutexLocker>
      
      class Threading : public QObject, public QOpenGLWidget {
      Q_Object
      
      public:
      Threading(QObject* parent);
      
      void paintWindow();
      
      private:
          QMutex  m_mutex;
      };
      
      // .cpp
      Threading::Threading(QObject* parent)  {
          qRegisterMetaType<CComPtr<IDeckLinkVideoFrame>>("CComPtr<IDeckLinkVideoFrame>");
          //Initializing GLEW
      	if (glewInit() != S_OK)  
      		qDebug() << "Initializing GLEW does not work.";
      
      	//Initializing Screen Preview Helper
      	ScreenPreviewHelperInstance(m_previewHelper);
      }
      
      void Threading::paintWindow() {
      if (m_previewHelper != nullptr) {
          QMutexLocker(&m_mutex);
          m_previewHelper->PaintGL();
          qDebug() << "VideoScreen: paintGL was called.";
          }
      }
      
      1 Reply Last reply
      0
      • JoeCFDJ Offline
        JoeCFDJ Offline
        JoeCFD
        wrote on last edited by
        #4

        Hast Du so was in app.pro?
        CONFIG += c++17
        oder in CMakeLists.txt
        set(CMAKE_CXX_STANDARD 17)

        M 1 Reply Last reply
        0
        • JoeCFDJ JoeCFD

          Hast Du so was in app.pro?
          CONFIG += c++17
          oder in CMakeLists.txt
          set(CMAKE_CXX_STANDARD 17)

          M Offline
          M Offline
          makopo
          wrote on last edited by makopo
          #5

          @JoeCFD
          Nein, das habe ich in der .pro stehen:
          CONFIG += debug

          EDIT: Wenn ich CONFIG c++17 zuweise, ändert das auch leider nichts an der Situation.

          JoeCFDJ 1 Reply Last reply
          0
          • M makopo

            @JoeCFD
            Nein, das habe ich in der .pro stehen:
            CONFIG += debug

            EDIT: Wenn ich CONFIG c++17 zuweise, ändert das auch leider nichts an der Situation.

            JoeCFDJ Offline
            JoeCFDJ Offline
            JoeCFD
            wrote on last edited by
            #6

            @makopo Es ist besser, das zu haben.
            https://forum.qt.io/topic/111793/how-to-resolve-error-of-qmutex-h/17

            M 1 Reply Last reply
            1
            • JoeCFDJ JoeCFD

              @makopo Es ist besser, das zu haben.
              https://forum.qt.io/topic/111793/how-to-resolve-error-of-qmutex-h/17

              M Offline
              M Offline
              makopo
              wrote on last edited by makopo
              #7

              @JoeCFD

              Es ist kurios auf eine noch ältere Version als 5.15.1. zurückzugehen.
              Bei der Version 6.1.2. sieht es mit den Fehlermeldungen zu diversen .h- Dateien allerdings noch schlimmer aus.

              1 Reply Last reply
              0
              • Christian EhrlicherC Offline
                Christian EhrlicherC Offline
                Christian Ehrlicher
                Lifetime Qt Champion
                wrote on last edited by
                #8

                Qt 6.1.2 kann definitiv mit MSVC2019 ohne Fehler kompiliert werden - da ist irgendwas in deiner Config falsch. Was für eine MSVC-Version hast Du genau?

                Qt Online Installer direct download: https://download.qt.io/official_releases/online_installers/
                Visit the Qt Academy at https://academy.qt.io/catalog

                M 1 Reply Last reply
                0
                • Christian EhrlicherC Christian Ehrlicher

                  Qt 6.1.2 kann definitiv mit MSVC2019 ohne Fehler kompiliert werden - da ist irgendwas in deiner Config falsch. Was für eine MSVC-Version hast Du genau?

                  M Offline
                  M Offline
                  makopo
                  wrote on last edited by
                  #9

                  @Christian-Ehrlicher
                  MSVC2019 64Bit

                  Es gibt Meldungen zu Fehlern in den Dateien qmutex.h, qproperties.h und qmetatype.h

                  Das ist die Config der .pro Datei

                  TEMPLATE = app
                  TARGET = VideoMeter
                  DESTDIR = ./x64/Debug
                  CONFIG += c++17
                  LIBS += -L"."
                  DEPENDPATH += .
                  MOC_DIR += .
                  OBJECTS_DIR += debug
                  UI_DIR += .
                  RCC_DIR += .
                  HEADERS += ./qvideometer.h
                  SOURCES += ./qvideometer.cpp \
                      ./main.cpp
                  FORMS += ./qvideometer.ui
                  RESOURCES += qvideometer.qrc
                  QT += widgets
                  QT += gui
                  QT += core
                  
                  1 Reply Last reply
                  0
                  • Christian EhrlicherC Offline
                    Christian EhrlicherC Offline
                    Christian Ehrlicher
                    Lifetime Qt Champion
                    wrote on last edited by
                    #10

                    @makopo said in Fehler mit Standardkonstruktor in qmutex.h:

                    MSVC2019 64Bit

                    Das weiß ich schon. Ich wollte die exakte Version.

                    Qt Online Installer direct download: https://download.qt.io/official_releases/online_installers/
                    Visit the Qt Academy at https://academy.qt.io/catalog

                    M 1 Reply Last reply
                    0
                    • Christian EhrlicherC Christian Ehrlicher

                      @makopo said in Fehler mit Standardkonstruktor in qmutex.h:

                      MSVC2019 64Bit

                      Das weiß ich schon. Ich wollte die exakte Version.

                      M Offline
                      M Offline
                      makopo
                      wrote on last edited by
                      #11

                      @Christian-Ehrlicher

                      6.1.2-0-202106290506

                      Versionsnummer laut Qt Installer. Ich wüsste auch sonst nicht wodran ich die extakte Version erkennen kann...

                      jsulmJ 1 Reply Last reply
                      0
                      • M makopo

                        @Christian-Ehrlicher

                        6.1.2-0-202106290506

                        Versionsnummer laut Qt Installer. Ich wüsste auch sonst nicht wodran ich die extakte Version erkennen kann...

                        jsulmJ Offline
                        jsulmJ Offline
                        jsulm
                        Lifetime Qt Champion
                        wrote on last edited by
                        #12

                        @makopo Es ging doch um die Visual Studio Version nicht Qt Version? Die sollte man in Visual Studio finden können.
                        "Was für eine MSVC-Version hast Du genau?".

                        https://forum.qt.io/topic/113070/qt-code-of-conduct

                        M 1 Reply Last reply
                        0
                        • jsulmJ jsulm

                          @makopo Es ging doch um die Visual Studio Version nicht Qt Version? Die sollte man in Visual Studio finden können.
                          "Was für eine MSVC-Version hast Du genau?".

                          M Offline
                          M Offline
                          makopo
                          wrote on last edited by
                          #13

                          @jsulm

                          Ok, ich dachte es geht um die Version des Compilers.
                          Ich nutze Visual Studio 16.10.2.

                          jsulmJ 1 Reply Last reply
                          0
                          • M makopo

                            @jsulm

                            Ok, ich dachte es geht um die Version des Compilers.
                            Ich nutze Visual Studio 16.10.2.

                            jsulmJ Offline
                            jsulmJ Offline
                            jsulm
                            Lifetime Qt Champion
                            wrote on last edited by
                            #14

                            @makopo said in Fehler mit Standardkonstruktor in qmutex.h:

                            ich dachte es geht um die Version des Compilers

                            Ist richtig, wobei diese von der Visual Studio version abgeleitet werden kann, wenn ich mich nicht irre.

                            https://forum.qt.io/topic/113070/qt-code-of-conduct

                            1 Reply Last reply
                            0
                            • Christian EhrlicherC Offline
                              Christian EhrlicherC Offline
                              Christian Ehrlicher
                              Lifetime Qt Champion
                              wrote on last edited by
                              #15

                              16.10.2 ist der aktuellste MSVC compiler.
                              Bitte erzeuge ein neues Qt-Projekt und in der main.cpp inkludierst Du nur QMutex und schau ob es kompiliert.

                              Qt Online Installer direct download: https://download.qt.io/official_releases/online_installers/
                              Visit the Qt Academy at https://academy.qt.io/catalog

                              M 1 Reply Last reply
                              0
                              • Christian EhrlicherC Christian Ehrlicher

                                16.10.2 ist der aktuellste MSVC compiler.
                                Bitte erzeuge ein neues Qt-Projekt und in der main.cpp inkludierst Du nur QMutex und schau ob es kompiliert.

                                M Offline
                                M Offline
                                makopo
                                wrote on last edited by
                                #16

                                @Christian-Ehrlicher
                                Ich bin wirklich verwirrt, wenn ich ein neues Projekt anlege erhalte ich 468 Fehler beim Kompilieren. Quer durch sämtliche Q-Module. Wenn ich mein "altes" Projekt auf 6.1.2 umstelle erhalte ih 10 Fehler.
                                Was ich getan habe? Ich habe in VS 2019 eine QWidgets Application angelegt.
                                In den Projekteinstellungen habe ich dann die folgenden Anpassungen vorgenommen

                                • VC++ Verzeichnisse/Includeverzeichnisse -> include-verzeichnis der Version eingebunden
                                • VC++ Verzeichnisse/Bibliotheksverzeichnisse -> lib Verzeichnis der Version eingebunden
                                • C++/Zusätzliche Includeverzeichnisse -> include-Verzeichnis eingebunden
                                • Linker/Allgemein/Zusätzliche Bibliotheksverzeichnisse -> lib Verzeichnis eingebunden.

                                Die 468 Fehler wurden schon vor Anpassung der Projekteigenschaften angezeigt.
                                Mit Version 5.13.2. kompiliert es ohne Probleme.

                                1 Reply Last reply
                                0
                                • Christian EhrlicherC Offline
                                  Christian EhrlicherC Offline
                                  Christian Ehrlicher
                                  Lifetime Qt Champion
                                  wrote on last edited by
                                  #17

                                  Nutze cmake oder qmake aber erzeuge kein rojekt für Qt von Hand...

                                  Qt Online Installer direct download: https://download.qt.io/official_releases/online_installers/
                                  Visit the Qt Academy at https://academy.qt.io/catalog

                                  1 Reply Last reply
                                  0
                                  • M Offline
                                    M Offline
                                    makopo
                                    wrote on last edited by
                                    #18

                                    Ich benutze die QtVS Tools für Visual Studio. Dort kann man ja quasi automatisch ein neues Projekt anlegen. Die Projekteinstellung muss ich ja im Grunde auch gar nicht vornehmen, da die durch VS nach Wahl der QT Version dynamisch gesetzt werden.
                                    Mit Qt Creator funktioniert dann auch die Version 6.1.2.

                                    1 Reply Last reply
                                    0

                                    • Login

                                    • Login or register to search.
                                    • First post
                                      Last post
                                    0
                                    • Categories
                                    • Recent
                                    • Tags
                                    • Popular
                                    • Users
                                    • Groups
                                    • Search
                                    • Get Qt Extensions
                                    • Unsolved