Seite 1 von 2
[gelöst]Qt4+MySQL auf Kubuntu
Verfasst: 4. Oktober 2007 12:04
von -marcelp-
Hallo,
mein Debugger kommentiert mir die Zeile '#inlcude <QSqlDatabase>' mit der Meldung '...no such file or directory'.
Ich habe gelesen, dass in das qmake-File eine Zeile 'QT += sql' soll.
Wo finde ich diese Datei?
Eine make-Datei ist direkt in meinem Projekteordner und nochmal in /src.
Für ein exaktes Beispiel wäre ich sehr dankbar.
Marcel
Verfasst: 4. Oktober 2007 12:07
von Zandru
such mal nach ner Datei mit der Endung .pro
Verfasst: 5. Oktober 2007 08:32
von -marcelp-
Habe ich gefunden: 'Projektname.pro' im Projekteordner.
Dort habe ich die Zeile 'QT += sql' angehängt, bringt leider gar nichts.
Was kann es noch sein?
Verfasst: 5. Oktober 2007 09:09
von -marcelp-
Inzwischen habe ich den Header direkt eingebunden:
#include "/usr/share/qt4/include/QtSql/qsqldatabase.h"
Jetzt kommt der Compiler weiter, Debugger meckert aber beim erstellen der Verbindung:
Code: QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
Message: undefined reference to 'QSqlDatabase::defaultConnection'

Verfasst: 5. Oktober 2007 11:31
von MichaelS
Hallo,
mir sieht das danach aus, als ob Compiler und Linker Header- und Lib-Verzeichnis nicht finden. Versuch doch einmal, diese direkt in Deinen pro-File anzugeben:
INCLUDEPATH += /usr/share/qt4/include/
LIBS += -L/usr/share/lib/
Viele Grüße
Michael
Verfasst: 7. Oktober 2007 13:01
von -marcelp-
Mein Problem bleibt unverändert. Den Pfad '/usr/share/lib/' gibt es bei mir nicht, ich habe statt dessen einfach '-L/lib/' eingetragen.
Vielleicht sollte ich noch erwähnen, dass ich eine Zeit lang mit Qt3 programmiert habe und jetzt Qt4 einfach dazuinstalliert habe. Vielleicht beißt sich etwas?
Verfasst: 7. Oktober 2007 14:53
von Christian81
Oh man - manchmal frage ich mich warum es überhaupt Tutorials und Anleitungen gibt wenn sie eh keiner liest :-/
Nach dem Einfügen in die pro-Datei muss qmake neu aufgerufen werden.
Verfasst: 8. Oktober 2007 11:46
von -marcelp-
Kaum zu glauben - aber obwohl ich das bereits beachtet habe, komme ich immer noch nicht weiter...
Verfasst: 8. Oktober 2007 12:15
von Christian81
Das glaube ich nicht - zeig uns ein Beispiel was Du wirklich gemacht hast.
Verfasst: 8. Oktober 2007 14:10
von MichaelS
Hast Du QT4 mit adept installiert? Wenn ja, hast Du auch daran gedacht, alle QT-4 Pakete (insbesondere qt4-sql) zu installieren?
Verfasst: 8. Oktober 2007 22:04
von -marcelp-
Gerne, vielleicht hilft's.
Also installierte Qt4-Pakete sind:
libqt4-core
-dev
-gui
-qt3support
-sql
ausserdem
qt4-designer
-dev-tools
-doc
Mein Projekt heißt Trawiz, ich habe die Datei 'trawiz.pro' wie folgt editiert:
SUBDIRS += src
TEMPLATE = subdirs
>INCLUDEPATH += /usr/share/qt4/include/
>LIBS += -L/usr/lib/
>QT += SQL
CONFIG += warn_on \
qt \
thread
wobei die markierten Zeilen von mir eingefügt wurden. Anschließend 'Build Project':
cd '/home/marcel/Projekte/Trawiz' && make -j1
qmake -o Makefile trawiz.pro
cd src && make -f Makefile
make[1]: Betrete Verzeichnis '/home/marcel/Projekte/Trawiz/src'
compiling main.cpp (g++)
In file included from sc_mdi.h:26,
from main.cpp:23:
sclager.h:25:24: error: QSqlDatabase: No such file or directory
make[1]: *** [main.o] Fehler 1
make[1]: Verlasse Verzeichnis '/home/marcel/Projekte/Trawiz/src'
make: *** [sub-src] Fehler 2
*** Exited with status: 2 ***
In den Project-Options habe ich bei C++-Support/Qt-Options alles auf Qt4 gesetzt.
Was habe ich übersehen?
Verfasst: 8. Oktober 2007 22:13
von -marcelp-
PS: Ich würde das Ganze gerne beschleunigen und habe deshalb meine ICQ-Nummer veröffentlicht.
Wenn also jemand Lust hat, mir ernsthaft zu helfen, würde ich mich sehr freuen!
MfG, Marcel
Verfasst: 8. Oktober 2007 22:56
von Christian81
Ein
TEMPLATE = subdirs
und dann eine App kompilieen? Wie soll das denn gehen? Die Optionen für sql müssen schon ins richtige pro-File...
Verfasst: 8. Oktober 2007 23:02
von -marcelp-
OK, meine Unwissenheit. Vielleicht bringst Du einfach mal ein Beispiel?
Verfasst: 8. Oktober 2007 23:03
von Christian81
Ich würde es einfach mal in das pro-File schreiben wo ich es brauche - nämlich in dem im 'src' - Verzeichnis wo Du auch deine Sourcen auflistest.