2017-10-25 3 views
-2

Ich habe mit diesem Problem für eine ganze Weile gekämpft, und leider half mir weder mein eigenes Denken, noch Google-Suche. In einfachen Worten, ich versuche, nativeErrorCode() -Funktion mit QSqlError-Klasse zu verwenden. Der Compiler sagt: mainwindow.cpp: 43: 86: error: 'class QSqlError' hat kein Member namens 'nativeErrorCode'. Das ist die Linie, die sie referenziert (um genau zu sein, zwei Linien):Klasse QSqlError hat kein Mitglied nativeErrorCode()

errorCreatingBooksTableMessageBox.setDetailedText((query.lastError().nativeErrorCode().isEmpty()) ? 
       query.lastError().text() : query.lastError().nativeErrorCode() + "\n" + query.lastError().text()); 

Problem scheint trivial, aber ich kann keine Antwort auf meinem eigenen finden. #include befindet sich in der Datei "mainwindow.h". Nach einigen Nachforschungen bemerkte ich andere Leute in anderen Foren, die vorschlugen, dass der Compiler eine falsche Version der Header-Datei verwendet, was sehr wahrscheinlich passieren würde, seit die Funktion nativeErrorCode() in Qt5 eingeführt wurde. Ich habe versucht, qt4 Ordner in den Papierkorb zu verschieben, aber immer noch keinen Effekt. Jede mögliche Hilfe würde geschätzt werden

Antwort

0

Ich bin nicht sicher, auf welchem ​​OS Sie dieses Problem treffen. Jedoch in den meisten der Linux OS Image, vorgebaut mit Qt4, auch wenn wir Qt5-Bibliotheken zusätzlich erstellen, kann die Systemumgebung alte Qt4-Bibliotheken verwenden, um make-Dateien zu generieren. Dies ist sehr häufig, wenn wir Qt5 aus Quellcodes erstellen. Es wäre also besser, wenn Sie versuchen würden, qmake aus dem Qt5-Pfad auszuführen. So wird das Makefile erstellt, um für Qt5-Bibliotheken zu erstellen.

Um zu bestätigen, öffnen Sie den Makefile und überprüfen Sie die Variable QMake zu QT5 oder Qt4-Bibliotheken ist beziehen.

ich dies für Ihre Referenz von meinem System bin Aktualisierung „QMake = /home/user1/Qt5.6.0/5.6/gcc_64/bin/qmake“ Aus diesem Grunde ist es klar, dass Makefile QT5 Bibliotheken verwendet und Bei der weiteren Kompilierung werden Qt5-Bibliotheken verwendet, um meinen Anwendungsquellcode zu kompilieren.

+0

Aus meinem Makefile kopiert: QMAKE =/usr/lib/i386-linux-gnu/qt5/bin/qmake –

+0

Wenn das der Fall ist, verwenden Sie Qt5, haben Sie eingeschlossen #include ? – Ashif

+0

Ich glaube schon: // –

Verwandte Themen