Seite 1 von 1

'QDBusConnection' was not declared in this scope

Verfasst: 14. September 2010 18:17
von MaBo
Hallo,

ich verusche den DBus zum "laufen" zu bringen.

Hierzu gibt es ja verschiedenste Beispiele:
http://doc.trolltech.com/qq/qq20-dbus.html
http://qt-forum.de/forum/viewtopic.php?t=12352
die ja alle soeine Art "hello World" für den DBus darstellen.

Leider bekomme ich keins der Bepiele compiliert.

Es hängt immer wieder an folgendem Problem:
Scheinbar findet Qt meine Bibliotheken nicht.

Ich poste hier einmal etwas Beispielcode und das Projektfile.

Code: Alles auswählen

 // ------------------------------- main.cpp --------------------------

#include <QtCore>
#include <QtDBus>


int main(int argc, char *argv[])
{
    QCoreApplication app(argc, argv);

    QDBusConnection bus = QDBusConnection::sessionBus();
    QStringList serviceNames = bus.interface()->
                               registeredServiceNames();
    qDebug() << serviceNames;

    return 0;
}

Code: Alles auswählen

#-------------------- test.pro -----------------------------

QT       += core
QT       += dbus

TARGET = test
CONFIG   += console
CONFIG   -= app_bundle

TEMPLATE = app

SOURCES += main.cpp

Code: Alles auswählen

--> Compilerausgabe:
Führe Build-Schritte für Projekt test aus...
Starte "c:/nokiaqtsdk/simulator/qt/mingw/bin/qmake.exe" C:/N900/test/test.pro -r -spec win32-g++
Der Prozess "c:/nokiaqtsdk/simulator/qt/mingw/bin/qmake.exe" wurde normal beendet.
Starte "C:/NokiaQtSDK/mingw/bin/mingw32-make.exe" -w
mingw32-make: Entering directory `C:/N900/test-build-simulator'

C:/NokiaQtSDK/mingw/bin/mingw32-make -f Makefile.Debug

mingw32-make[1]: Entering directory `C:/N900/test-build-simulator'

compiling ../test/main.cpp 

..\test\main.cpp: In function 'int main(int, char**)':

..\test\main.cpp:9: error: 'QDBusConnection' was not declared in this scope

..\test\main.cpp:9: error: expected ';' before 'bus'

..\test\main.cpp:10: error: 'bus' was not declared in this scope

mingw32-make[1]: Leaving directory `C:/N900/test-build-simulator'

mingw32-make[1]: *** [debug/main.o] Error 1

mingw32-make: Leaving directory `C:/N900/test-build-simulator'

mingw32-make: *** [debug] Error 2

Der Prozess "C:/NokiaQtSDK/mingw/bin/mingw32-make.exe" wurde mit dem Rückgabewert %2 beendet.
Fehler beim Erstellen des Projekts test(Ziel: Qt Simulator)
Bei der Ausführung von Build-Schritt 'Make'
Was ich bereits (mehrfach mit dampfendem Kopf) Kontrolliert habe:
  • *Die Bibliotheken sind vorhanden und an der Richtigen Stelle.
    Heirzu habe ich mir sämtliche Pfade in dem "Modus Projekte" (wie Qt das nennt) angesehen..
    Alles IO..

    *Die Libs für DBus sollten über die zweite #include-Zeile eingebunden werden.
    Hierzu habe ich auch noch folgendes (in allen möglichen Variationen) versucht:

    Code: Alles auswählen

    #include <QtDBus/QtDBus>
    #include <QtDBus/QDBusConnection>
    //u.s.w.
    
    *Wie oben zu sehen habe ich auch die Angeabe

    Code: Alles auswählen

    QT += dbus
    im Projektfile mit aufgenommen. Auch das hat nicht geholfen.
Das Ganze beschäftigt mich nun schon seit drei Tagen und so Langsam verhagelt es mit den Einstieg in dir Programmierung mit QT
Ich raffe einfach nicht was denn da nicht funktioniert.

Fehlt mir hier irgendwas wichtiges?
Übersehe ich etwas magels Erfahrung?

Ich würde mich freuen, wenn mir hier jemand helfen könnte oder die richtigen Fragen stellt.
Vielen Dank vorab.

MfG Markus

PS:
Hier gibts noch meinen ersten Eintrag hier im Forum und damit das eigentliche Ziel der Ganzen Geschichte:
http://qtforum.de/forum/viewtopic.php?t=12407

Verfasst: 14. September 2010 18:32
von ArneBurghardt
Hallo Markus,

hast Du nach der Änderung im .pro File noch einmal qmake aufgerufen, damit die Makefiles neu erzeugt werden (inkl. der neuen Bibliotheken) ?

Verfasst: 14. September 2010 20:47
von MaBo
Habe ich..
glaube ich.. :)
Da nach dem ich einmal compiliert habe immer die Meldung
  • Unveränderte Konfiguration, qmake-Schritt wird übersprungen.
kam, habe ich den kompletten Inhalt des Ordners "<projektname>-build-simulator" gelöscht und nocheinmal compiliert..

Leider ohne Änderung.


Von Hand habe ich qmake nie richtig aufrufen können.
Weil: Mein PATH sieht derzeit so aus:

Code: Alles auswählen

PATH=
C:\Programme\PC Connectivity Solution\;
C:\Programme\WinAVR\bin;
C:\Programme\WinAVR\utils\bin;
C:WINDOWS\system32;
C:\WINDOWS;
C:\WINDOWS\System32Wbem;
C:\Programme\Intel\DMIX;
C:\Programme\PinnacleShared Files\;
C:\MADDE\0.6.72\wbin
Wie man sieht habe ich noch WinAVR installiert.
Qt hat scheinbar keine Einträge im Path gemacht.
Das File "qmake" liegt ja aber auch für die verscheiedenen Plattformen an unterschiedlichen Stellen.. Da würde ein "PATH" wenig Sinn machen.
Oder?

Wie werden denn Bibliotheken neu kompiliert?
Denke die liegen fertig compiliert (binär) vor und werden dann nur vom Compiler genutzt. Die Header-Files bieten dann "nur" die Definitionen zu den entsprechenden Binären Funktionen
Zumindest kenne ich das von der Mikrocontrollerprogrammierung so.

MfG Markus

Verfasst: 15. September 2010 13:51
von MaBo
Jemand eine Idee?

Alles deinstalliert und neu Installiert habe ich auch schon.
Würde mich freuen, wenn mir jemand helfen kann.

MfG markus

Verfasst: 15. September 2010 14:04
von pfid
Ist QtDbus nicht ne Unix-only Geschichte?

Verfasst: 15. September 2010 15:32
von MaBo
hmm..
klar.. windows kennt sowas nicht..
jedoch..
ich will ja keine Win-App schreiben, sondern etwas für mein N900
Und dafür hat Qt nen Simulator.
Denke den DBus wird der auch abbilden können.. oder?

Jetzt hast du mich ans Grübeln bekommen..
hmm..

Verfasst: 15. September 2010 16:47
von androphinx
QtDBus ist tatsächlich nur für Unix Developer. Ding an der ganzen Sache ist die folgende: Für welches System hast du denn das Programm kompiliert, d. h. mit welcher Qt-Variante? In der von Windoof isses selbstverständlich nicht drin, wohl aber in der von Qt Embedded:

http://doc.qt.nokia.com/4.7-snapshot/qt ... iling.html
http://doc.qt.nokia.com/4.7-snapshot/qt ... linux.html
http://qt.nokia.com/downloads/embedded-linux-cpp

Mfg androphinx

"Qt Embedded" und "Unix Developer" ?

Verfasst: 16. September 2010 08:44
von MaBo
hmm..

also..
ich habe folgendes (unter Windows) installiert:
"Nokia Qt SDK" von hier:
http://www.forum.nokia.com/info/sw.noki ... t_SDK.html

Hierin sind die folgenden Zielumgebungen enthalten:
Maemo: Test direkt auf dem N900 (via USB oder W-LAN)
Qt Simulator: Test auf dem PC mit einem N900-Simulator oder N8-Simulator (Oder Symbian-Simulator)
Symbian: Test direkt auf dem Gerät, habe jedoch keins mit Symbian
Desktop währe für ein Windows, ist jedoch nicht installiert.. (hier würde der DBus keinen Sinn ergeben, weil Windows ja keinen DBus hat)

Zumindest für den Qt Simulator und Maemo habe ich bereits eine Test-App schreiben können (ohne DBus):
http://de.wikibooks.org/wiki/Qt_f%C3%BC ... %C3%A4nger

Zu jeder der o.g. Zielumgebungen gibt es einen Ordner bei mir auf dem PC, in dem die Libs enthalten sind.
Unter anderem damit auch die Libs für den DBus (bzw. die Header-Files dazu).

Damit sollten doch dann APPs für ein Zielsystem mit DBus möglich sein..
Oder verstehe ich da was falsch?

Mit den Begriffen "Qt Embedded" und "Unix Developer" kann ich leider nicht so viel anfangen.
Sind das Zielumgebungen oder Systeme auf denen ich programmiere und compiliere?
Brauche ich etwa eine Linuxumgebung (also zum programmieren & compilieren) um den DBus zum "laufen" zu bringen?

Gundsätzlich möchte ich kein neues Betriebssystem installieren um eine APP für mein Handy schrieben zu können.
Ich denke da gehts vielen anderen (leider Windows gewöhnten) Usern genauso.
Und ich glaube genau aus diesem Grund hat Nokia die Qt-Version für Windows (und z.B. auch für den MAC) geschrieben..
Und diese Version wird doch hoffentlich alle Funktionen des Zielsystems (also auch DBus) unterstützen.
Oder? (erst gemeinte Frage)

Wie gesagt..
Mit fehlt etwas der Überblick..

MfG Markus

PS: Danke schonmal für die Hilfe bisher.. :)

Verfasst: 17. September 2010 07:49
von MaBo
Huhu..

@androphix:
Habe ich das richtig sortiert?
Kannst Du weiterhelfen?

@ all:
Nochjemand eine Idee?

MfG Markus

Verfasst: 20. September 2010 18:47
von MaBo
hallo?

weiß jemand Rat?

Verfasst: 20. September 2010 21:30
von androphinx
Mir macht diese eine Zeile in der Compilerausgabe etwas zu schaffen:

Code: Alles auswählen

Starte "c:/nokiaqtsdk/simulator/qt/mingw/bin/qmake.exe" C:/N900/test/test.pro -r -spec win32-g++
Dieses -spec win32-g++ erstellt ja eigentlich eine win32-app und wie du selber schon richtig festgestellt hast, ist dbus nicht mit win32 vereinbar....

Versuche dich mal an dieser offiziellen Anleitung, sollte hoffentlich helfen:
http://www.youtube.com/watch?v=Rb43gnZI1A0

Mfg androphinx

Verfasst: 21. September 2010 22:06
von MaBo
Dieses -spec win32-g++ erstellt ja eigentlich eine win32-app und wie du selber schon richtig festgestellt hast, ist dbus nicht mit win32 vereinbar....
Warum das so ist, ist auch klar..
Der Compiler macht eine Win-App, die dann im Simulator läuft..
Der ist ja schließlich Win-basierend..

Wenn ich auf Maemo umstelle steht da auch nichts mehr von win32..
Der Fehler bleibt aber der selbe.

Trotzdem Danke erst mal..

MfG Markus