Qt SDK mit Qt Source und How to Build XY Plugin?

Alles rund um die Programmierung mit Qt
Antworten
Bjoe
Beiträge: 5
Registriert: 13. Februar 2011 20:27

Qt SDK mit Qt Source und How to Build XY Plugin?

Beitrag von Bjoe »

Hallo,

mein Problem ist, das ich das Oracle Treiber Plugin für Qt 4.7.3 nicht Kompilieren kann, weil die Privaten QtSql Headers nicht gefunden werden.
Die Lösung wäre, wie erzeuge ich in den QtSources (Componente von QtSDK) einen Qt Build Tree, ohne das ich das gesamte Qt Kompilieren muss?

Ich habe das QtSDK 1.1.2 installiert.
Dort habe ich die "Desktop Qt 4.7.3" und "Qt 4.7.3 Sources" Components installiert. Dann gehe ich wie in der Qt Doku vor:
http://developer.qt.nokia.com/doc/qt-4. ... 0ade212c1e. Beim Kompilieren vermisst er dann die Privaten Header: QtSql/private/qsqlcachedresult_p.h

In der Vergangenheit, als ich noch ohne SDK die Libs und qt-everywhere-opensource-src selber heruntergeladen habe, hat das immer funktioniert. In den heruntergeladenen Sourcen war sozusagen der "Qt Build Tree" vorhanden. Dort gab es ein include Verz. in der die gesamten Headers mit den Privaten Header lagen. In den jetzigen QtSDK / QtSouces Verz. gibt es diesen "Qt Build Tree" nicht mehr.
Mein Frage ist: Wie kann man diesen "Qt Build Tree" elegant erzeugen lassen, ohne das ich im QtSources ein make aufrufe der alles Kompiliert? Ein make buildtree wäre praktisch :-)

Danke schonmal vorab für eure Ideen / Ratschläge.
-=Freaky=-
Beiträge: 503
Registriert: 29. Dezember 2006 22:54
Wohnort: HL

Beitrag von -=Freaky=- »

es wundert mich etwas, dass bei den sourcen vom sdk-tool header fehlen, aber falls die automatisch generiert werden (je nach plattform oder so?), vielleicht mal ein configure mit den settings machen, mit denen deine (vor-)kompilierte qt-version auch gebaut wurde?

ist aber auch nur mal so geraten, ohne garantie.
Bjoe
Beiträge: 5
Registriert: 13. Februar 2011 20:27

Re: Qt SDK mit Qt Source und How to Build XY Plugin?

Beitrag von Bjoe »

Hallo,

nein die Header Dateien fehlen nicht, sie liegen im "src" verteilt in den einzelnen Verzeichnissen. Z.B.
...
QtSources/4.7.3/src/sql/kernel/qsqlfield.h
QtSources/4.7.3/src/sql/kernel/qsqlquery.h
QtSources/4.7.3/src/sql/kernel/qsqlcachedresult_p.h
...
Beim Builden der plugins, sowie im Qt Howto beschrieben, werden diese Header Dateien unter: QtSources/4.7.3/include erwartet.
Beispiel Fehlermeldung unter Windows:
I:\jlib\QtSources\4.7.3\src\plugins\sqldrivers\oci>qmake oci.pro
I:\jlib\QtSources\4.7.3\src\plugins\sqldrivers\oci>mingw32-make
mingw32-make -f Makefile.Debug
mingw32-make[1]: Entering directory `I:/jlib/QtSources/4.7.3/src/plugins/sqldrivers/oci'
g++ -c -g -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_NO_CAST_TO_ASCII -DQT_NO_CAST_FROM_ASCII -DQT_DLL -DQT_PLUGIN -DQT_SQL_LIB -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_3DNOW -DQT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -DQT_THREAD_SUPPORT -"i:\jlib\Desktop\Qt\4.7.3\mingw\include\QtCore" -I"i:\jlib\Desktop\Qt\4.7.3\mingw\include\QtSql" -I"i:\jlib\Desktop\Qt\4.7.3\mingw\include" -I"i:\jlib\Desktop\Qt\4.7.3\mingw\include\ActiveQt" -I"debug" -I"i:\jlib\Desktop\Qt\4.7.3\mingw\mkspecs\default" -o debug\main.o main.cpp
In file included from main.cpp:44:
../../../sql/drivers/oci/qsql_oci.h:47:46: error: QtSql/private/qsqlcachedresult_p.h: No such file or directory

In file included from main.cpp:44:
../../../sql/drivers/oci/qsql_oci.h:68: Fehler: expected class-name before -+{-� token
../../../sql/drivers/oci/qsql_oci.h:80: Fehler: -+ValueCache-� has not been declared
mingw32-make[1]: *** [debug/main.o] Error 1
mingw32-make[1]: Leaving directory `I:/jlib/QtSources/4.7.3/src/plugins/sqldrivers/oci'
mingw32-make: *** [debug] Error 2

I:\jlib\QtSources\4.7.3\src\plugins\sqldrivers\oci>
Bjoe
Beiträge: 5
Registriert: 13. Februar 2011 20:27

Re: Qt SDK mit Qt Source und How to Build XY Plugin?

Beitrag von Bjoe »

Hallo,

ich habe das Problem gelöst.
Die Lösung:

Man führt im Verz. QtSDK/QtSources/4.7.3 das ./configure aus.
Hierbei wierden die Headers unter QtSDK/QtSources/4.7.3/include kopiert/erstellt.
Zusätzlich wird qmake in QtSDK/QtSources/4.7.3/bin erstellt.
Nachdem ./configure durchgelaufen ist, kopiert man moc von (unter Linux) QtSDK/Desktop/Qt/473/gcc/bin nach QtSDK/QtSources/4.7.3/bin. Zusätzlich noch die die libs von QtSDK/Qt/473/gcc/lib nach QtSDK/QtSources/4.7.3/lib. Danach kann man wie unter "Building the Plugins Manually" die Plugins kompilieren.
Später kopiert man die Plugins von QtSDK/QtSources/4.7.3/plugins/.... nach QtSDK/Desktop/Qt/473/gcc/plugins/....

Das wars.
Antworten