Hallo zusammen, ich hab jetzt endlich QT4.7 erfolgreich installiert. Nun es ist so lange hier dass ich mit QT rum gemacht hab. Ich muss ein kleine QT Programm die auch unteranderem RS232 Schnittstelle enthält schreiben. Bei meinem recherche bin ich auf folgendes gestoßen: Installationsanweisung (Installing QextSerialPort) http://www.androdna.com/programming/QtTutorial/tutorial_1.html Beispiel http://sourceforge.net/projects/qextserialport/files/ nun zu mein Vorgehen: Nach dem ich nach der Anweisung installiert hab, versuche ich nun eine der Beispiele zu kompalieren, dass ging auch gut danach veruschte ich das ausführbare (exe) Datei aus zu führen, dann kommt die Meldung das er kein DLL qextserialport.dll nicht finden kann. Was mach ich da falsch?
ich glube ich hab ein grundsätzliche, ich versuche gerade das Beispiel quest zu kompalieren. Dann Spuckt der kompiler folgende fehler: :: error: cannot find -lqextserialport :: error: collect2: ld returned 1 exit status
Dann such mal auf der Festplatte, wo die Datei libqextserialport .a rumlliegt. Und dann füge den entsprechenden Pfad mit hinzu. http://doc.trolltech.com/latest/qmake-project-files.html#declaring-other-libraries bzw, http://www.androdna.com/programming/QtTutorial/tutorial_4.html
Genau ich bin auf diese Seite http://www.androdna.com/programming/QtTutorial/index.html jetzt leuft so weit alles gut. Ich hab jetzt die Tutorial von anfang bis zum ende abgearbeitet. Ich bekomme jetzt folgende feler error: input was not declared in this scope ERROR 1
"jetzt leuft so weit alles gut" vs. "Ich bekomme jetzt folgende feler" Das ist ein Widerspruch in sich. Also entweder es läuft oder es läuft nicht. Entscheide Dich! Und wenn Du schon Fehlermeldungen postest, dann bitte so, daß man was damit anfangen kann. Also wo ist der Sourcecode? Wie kompiliert? Welche Parameter? An welcher Stelle kommt der Fehler? ... Meine Glaskugel meint, Du benutzt eirgendwo irgentetwas namens "input", was an diese Stelle nicht existiert.
Ok sorry MainWindow.cpp: in member function 'void MainWindow::on_sendButton_clicked MainWindow.cpp:34: error: 'input' was not declared in this Scope mingw32-make[1]: ***[release/MainWindow.o] Error 1 mingw32-make: ***release] Error 2
Entschuldige Kompalieren tu ich in dem ich, erst zu Verzeichnis wechsele dann qmake dann mingw32-qmake dann kommt wie oben geschrieben die Fehlermeldung! Danke Gruß Michael
Meine Glaskugel hatte Recht:
1 | void MainWindow::on_sendButton_clicked() |
2 | {
|
3 | QString text=input->text(); |
4 | QByteArray bytes=text.toAscii(); |
5 | sp->send(bytes.size(),bytes.data()); |
6 | if(portOpen) |
7 | {
|
8 | serialLog->append("<font color=blue>"+text+"</font>"); |
9 | }
|
10 | else
|
11 | {
|
12 | serialLog->append("<font color=red>"+text+"</font>"); |
13 | }
|
14 | input->clear(); |
15 | }
|
Hier nutzt Du etwas names "input", was es in Deinem Program nicht gibt. Du meinst nicht zufällig "inputText"? BTW Wenn Du die Fehlermeldung wenigstens korrekt gepostet hättest, und auch noch die paar Zeilen davor hätte man Dir auch eher konkret helfen können. Also Fehlermeldungen IMMER KOMPLETT posten!!! Und IMMER COPY&PASTE!!! Niemals abtippen! Das absolute Minimum in Deinem Fall wäre in etwa gewesen: g++ -c -O2 -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I"..\..\..\..\devel\QT\2010.02.1\qt\include\QtCore" -I"..\..\..\..\devel\QT\2010.02.1\qt\include\QtGui" -I"..\..\..\..\devel\QT\2010.02.1\qt\include" -I"." -I"..\qextserialport" -I"..\..\..\..\devel\QT\2010.02.1\qt\include\ActiveQt" -I"release" -I"." -I"..\..\..\..\devel\QT\2010.02.1\qt\mkspecs\win32-g++" -o release\MainWindow.o MainWindow.cpp MainWindow.cpp: In member function 'void MainWindow::on_sendButton_clicked()': MainWindow.cpp:34: error: 'input' was not declared in this scope Und wenn Du die Fehlermeldung komplett gelessen hättest, und auch die Zeile davor, wärst Du vielleicht sogar selbst drauf gekommen. Vor allem hättest Du schon mal die richtige Stelle erwischt: Zeile 34 in MainWindow.cpp
OK, sorry in Deinem vorletzten Post stand ja zumindest schonmal die komplette Fehlermeldunmg. Die Zeile davor wäre trotzdem noch interressant gewesen. Wie auch immer, eigentlich steht alles in der Meldung drin. Zeile 34 in MainWindow.cpp ist diese:
1 | QString text=input->text(); |
Hier steht hinter dem Gleichheitszeichen "input" und der Kompiler hat einfach absolute keine Ahnung was das sein soll, da das nirgends sonst in Deinem Programm vorkommt.
Das Problem ist ich hab versucht die Fehlermeldung (Win-XP) CMD aus in
eine Datei zu Schreiben in dem ich
>>mingw32-make>xxx.txt
Das klappt leider nicht er schreibt irgend welche Messages aber nicht
die Fehlermeldung, deshalb das abtippen. Die Fehlermeldung hab ich auch
deuten können, die sache ist die der Code ist aus der tutorial Seite und
ich dachte das sei bekannt.
Es gibt auch noch copy/paste. Nur so am Rande:
1 | serialLog->append("<font color=blue>"+text+"</font>"); |
Hier sollte man den Text escapen, sonst kann man allerhand Unfug anstellen, indem man irgendwelche html-Tags in den Text einbaut.
Wie copy/past in cmd das geht bei mir mit Sicherheit nicht. >Nur so am Rande: > serialLog->append("<font color=blue>"+text+"</font>"); >Hier sollte man den Text escapen, sonst kann man allerhand Unfug >anstellen, indem man irgendwelche html-Tags in den Text einbaut. Ok mach ich. Jetzt läuft es durch denn in dem Tutorial hat er vergessen dass das Objekt inputText heisst das hat mich wahnsinnig irritiert. QString text=inputText->text(); Allerdings ich hab nur ein Laptop ohne Serielleschnittstelle, kann das jemand vielleicht ausprobieren! Richtige Code ist im Anhang zu finden!
michael schrieb: > Wie copy/past in cmd das geht bei mir mit Sicherheit nicht. Irrtum, das geht definitiv! Ansonsten:
1 | mingw32-make >xxx.txt 2>&1 |
Dann landet auch stderr in der Datei.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.