QT RS232 (Serial port)

Gast #1833421
Lesenswert?

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?
Gast #1833582
Lesenswert?

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
Gast #1834900
Lesenswert?

"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.
Gast #1834990
Lesenswert?

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
Angehängte Dateien:
Gast #1835042
Lesenswert?

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
Gast #1835052
Lesenswert?

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.
Gast #1835197
Lesenswert?

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.
Gast #1835269
Lesenswert?

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.
Gast #1835470
Lesenswert?

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!
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren