[QT] SQLITE - Linker fehler
-
Hallo,
ich verbringe jetzt den dritten Abend damit in einer simplen QT anwendung SQLITE zum laufen zu bringen. Sinn des ganzen ist nur mein neugier zu stillen da QT neu für mich ist, es aber durchaus seine Reize hat.
Jetzt habe ich mich streng an die Hilfe aus dem Offiziellen Nokia QT Wiki (http://www.developer.nokia.com/Community/Wiki/Creating_an_SQLite_database_in_Qt) gehalten und die Klasse quasi 1:1 übernommen nachdem ich folgende Include angepasst habe:
#include <QtSql/qsqldatabase.h> #include <QtSql/qsqlerror.h>
Achja ich arbeite mit QT Creator 2.4.1 QT 4.7.4
Wenn ich nun mein Testprogramm durchkompilieren möchte kriege ich folgende fehlerangaben.
D:\Projekte\qt\untitled\main.obj:-1: Fehler:LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""__declspec(dllimport) public: __thiscall QSqlDatabase::~QSqlDatabase(void)" (__imp_??1QSqlDatabase@@QAE@XZ)" in Funktion ""public: __thiscall hallo::~hallo(void)" (??1hallo@@QAE@XZ)". D:\Projekte\qt\untitled\msql.obj:-1: Fehler:LNK2001: Nicht aufgelöstes externes Symbol ""__declspec(dllimport) public: __thiscall QSqlDatabase::~QSqlDatabase(void)" (__imp_??1QSqlDatabase@@QAE@XZ)". D:\Projekte\qt\untitled\msql.obj:-1: Fehler:LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""__declspec(dllimport) public: __thiscall QSqlDatabase::QSqlDatabase(void)" (__imp_??0QSqlDatabase@@QAE@XZ)" in Funktion ""public: __thiscall hallo::hallo(void)" (??0hallo@@QAE@XZ)". D:\Projekte\qt\untitled\msql.obj:-1: Fehler:LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""__declspec(dllimport) public: bool __thiscall QSqlDatabase::open(void)" (__imp_?open@QSqlDatabase@@QAE_NXZ)" in Funktion ""public: bool __thiscall hallo::openDB(void)" (?openDB@hallo@@QAE_NXZ)". D:\Projekte\qt\untitled\msql.obj:-1: Fehler:LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""__declspec(dllimport) public: void __thiscall QSqlDatabase::setDatabaseName(class QString const &)" (__imp_?setDatabaseName@QSqlDatabase@@QAEXABVQString@@@Z)" in Funktion ""public: bool __thiscall hallo::openDB(void)" (?openDB@hallo@@QAE_NXZ)". D:\Projekte\qt\untitled\msql.obj:-1: Fehler:LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""__declspec(dllimport) public: class QSqlDatabase & __thiscall QSqlDatabase::operator=(class QSqlDatabase const &)" (__imp_??4QSqlDatabase@@QAEAAV0@ABV0@@Z)" in Funktion ""public: bool __thiscall hallo::openDB(void)" (?openDB@hallo@@QAE_NXZ)". D:\Projekte\qt\untitled\msql.obj:-1: Fehler:LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""__declspec(dllimport) public: static class QSqlDatabase __cdecl QSqlDatabase::addDatabase(class QString const &,class QString const &)" (__imp_?addDatabase@QSqlDatabase@@SA?AV1@ABVQString@@0@Z)" in Funktion ""public: bool __thiscall hallo::openDB(void)" (?openDB@hallo@@QAE_NXZ)". D:\Projekte\qt\untitled\msql.obj:-1: Fehler:LNK2001: Nicht aufgelöstes externes Symbol ""__declspec(dllimport) public: static char * QSqlDatabase::defaultConnection" (__imp_?defaultConnection@QSqlDatabase@@2PADA)". debug\untitled.exe:-1: Fehler:LNK1120: 7 nicht aufgelöste externe Verweise.
Ich habe mich für SQLITE entschieden weil ich gelesen habe die ist ohne großen aufwand in einem QT Projekt zu verwenden weils QT schon mitliefert. Naja anscheinend mache ich nen groben fehler - falls wer sieht was ich falsch mache wäre ich für hinweise dankbar.
~Grüße niko
-
vieleicht "QT += sql" im .pro File vergessen?
-
Also ja das war es wohl.
Komisch.. ich dachte das hatte ich schon ausprobiert aber anscheinend wohl nicht. Danke dir jedenfalls, sollte ich weitere Fragen zu QT haben werde ich mich wieder melden.EDIT: ich hatte
QT += SQL
ausprobiert. Geht wohl nur kleingeschrieben.