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.