mikrocontroller.net

Forum: PC-Programmierung Compillieren in C++ schlägt fehl (Linux Programm auf Windows)


Autor: Marc (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,

erstmal sorry für den schlechten Titel, ich wusste nicht was da sonst 
hinschreiben sollte :-D

Also ich würde Gerne ein Programm das unter Linux geschrieben worden 
ist, unter Windows Compilieren und natürlich auch benutzen ;-)

Link zu der Seite:
http://bkilian.w.interia.pl/modelarstwo/koder_ATme...

Die software des ATMEGA´s ist kein Problem.
Es geht um die Software für den PC.

Hier die Sourcen:
http://bkilian.w.interia.pl/modelarstwo/koder_ATme...

Was geht da schief?

Ich bekomme mit C++ Builder XE volgende Ausgabe:

Abhängigkeiten des Projekts werden überprüft...
Compilieren von Project1.cbproj (Debug, Win32)
bcc32 Befehlszeile für "Project1.cpp"
  c:\program files (x86)\embarcadero\rad studio\8.0\bin\bcc32.exe 
-D_DEBUG -D_RTLDLL;USEPACKAGES -n.\Debug\Win32 -I"c:\program files
  (x86)\embarcadero\rad studio\8.0\include\windows\crtl\DE";"c:\program 
files (x86)\embarcadero\rad studio\8.0\include\windows\rtl\DE";
  ..\..\..\Desktop\XKilianCom;"c:\program files (x86)\embarcadero\rad 
studio\8.0\include";"c:\program files (x86)\embarcadero\rad
  studio\8.0\include\windows\crtl";"c:\program files 
(x86)\embarcadero\rad studio\8.0\include\dinkumware";"c:\program files 
(x86)\embarcadero\rad
  studio\8.0\include\windows\sdk";"c:\program files 
(x86)\embarcadero\rad studio\8.0\include\windows\rtl";"c:\program files 
(x86)\embarcadero\rad
  studio\8.0\include\windows\vcl" -y -Q -k -r- -c -tD -tM -C8 
-o.\Debug\Win32\Project1.obj -w-par -Od -v -vi- 
-H=.\Debug\Win32\Project1.pch -H
  Project1.cpp
bcc32 Befehlszeile für "..\..\..\Desktop\XKilianCom\cencoder.cpp"
  c:\program files (x86)\embarcadero\rad studio\8.0\bin\bcc32.exe 
-D_DEBUG -D_RTLDLL;USEPACKAGES -n.\Debug\Win32 -I"c:\program files
  (x86)\embarcadero\rad studio\8.0\include\windows\crtl\DE";"c:\program 
files (x86)\embarcadero\rad studio\8.0\include\windows\rtl\DE";
  ..\..\..\Desktop\XKilianCom;"c:\program files (x86)\embarcadero\rad 
studio\8.0\include";"c:\program files (x86)\embarcadero\rad
  studio\8.0\include\windows\crtl";"c:\program files 
(x86)\embarcadero\rad studio\8.0\include\dinkumware";"c:\program files 
(x86)\embarcadero\rad
  studio\8.0\include\windows\sdk";"c:\program files 
(x86)\embarcadero\rad studio\8.0\include\windows\rtl";"c:\program files 
(x86)\embarcadero\rad
  studio\8.0\include\windows\vcl" -y -Q -k -r- -c -tD -tM -C8 
-o.\Debug\Win32\cencoder.obj -w-par -Od -v -vi- 
-H=.\Debug\Win32\Project1.pch -H
  ..\..\..\Desktop\XKilianCom\cencoder.cpp
[BCC32 Fehler] cencoder.cpp(2): E2209 include-Datei 'unistd.h' kann 
nicht geöffnet werden
[BCC32 Fehler] cport.hpp(3): E2209 include-Datei 'termios.h' kann nicht 
geöffnet werden
  Vollständiger Parser-Kontext
    cencoder.cpp(6): #include ..\..\..\Desktop\XKilianCom\cport.hpp
[BCC32 Fehler] cport.hpp(78): E2293 ) erwartet
  Vollständiger Parser-Kontext
    cencoder.cpp(6): #include ..\..\..\Desktop\XKilianCom\cport.hpp
    cport.hpp(18): class cPort
[BCC32 Fehler] cport.hpp(136): E2293 ) erwartet
  Vollständiger Parser-Kontext
    cencoder.cpp(6): #include ..\..\..\Desktop\XKilianCom\cport.hpp
    cport.hpp(18): class cPort
[BCC32 Fehler] cport.hpp(138): E2293 ) erwartet
  Vollständiger Parser-Kontext
    cencoder.cpp(6): #include ..\..\..\Desktop\XKilianCom\cport.hpp
    cport.hpp(18): class cPort
[BCC32 Fehler] cport.hpp(140): E2293 ) erwartet
  Vollständiger Parser-Kontext
    cencoder.cpp(6): #include ..\..\..\Desktop\XKilianCom\cport.hpp
    cport.hpp(18): class cPort
[BCC32 Fehler] cport.hpp(155): E2303 Typname erwartet
  Vollständiger Parser-Kontext
    cencoder.cpp(6): #include ..\..\..\Desktop\XKilianCom\cport.hpp
    cport.hpp(18): class cPort
[BCC32 Fehler] cport.hpp(169): E2450 Undefinierte Struktur 'termios'
  Vollständiger Parser-Kontext
    cencoder.cpp(6): #include ..\..\..\Desktop\XKilianCom\cport.hpp
    cport.hpp(18): class cPort
[BCC32 Fehler] cport.hpp(169): E2449 Größe von 't' unbekannt oder Null
  Vollständiger Parser-Kontext
    cencoder.cpp(6): #include ..\..\..\Desktop\XKilianCom\cport.hpp
    cport.hpp(18): class cPort
[BCC32 Fehler] cport.hpp(26): E2450 Undefinierte Struktur 'termios'
  Vollständiger Parser-Kontext
    cencoder.cpp(6): #include ..\..\..\Desktop\XKilianCom\cport.hpp
    cport.hpp(18): class cPort
    cport.hpp(172): Entscheidung zum Instantiieren: int 
cPort::getPorts(char  )
    --- Zurücksetzen des Parser-Kontexts für die Instantiierung...
    cport.hpp(24): Analyse: int cPort::getPorts(char  )
[BCC32 Fehler] cport.hpp(26): E2449 Größe von 't_tmp' unbekannt oder 
Null
  Vollständiger Parser-Kontext
    cencoder.cpp(6): #include ..\..\..\Desktop\XKilianCom\cport.hpp
    cport.hpp(18): class cPort
    cport.hpp(172): Entscheidung zum Instantiieren: int 
cPort::getPorts(char  )
    --- Zurücksetzen des Parser-Kontexts für die Instantiierung...
    cport.hpp(24): Analyse: int cPort::getPorts(char  )
[BCC32 Fehler] cport.hpp(32): E2268 Aufruf der undefinierten Funktion 
'scandir'
  Vollständiger Parser-Kontext
    cencoder.cpp(6): #include ..\..\..\Desktop\XKilianCom\cport.hpp
    cport.hpp(18): class cPort
    cport.hpp(172): Entscheidung zum Instantiieren: int 
cPort::getPorts(char  )
    --- Zurücksetzen des Parser-Kontexts für die Instantiierung...
    cport.hpp(24): Analyse: int cPort::getPorts(char  )
[BCC32 Fehler] cport.hpp(45): E2268 Aufruf der undefinierten Funktion 
'major'
  Vollständiger Parser-Kontext
    cencoder.cpp(6): #include ..\..\..\Desktop\XKilianCom\cport.hpp
    cport.hpp(18): class cPort
    cport.hpp(172): Entscheidung zum Instantiieren: int 
cPort::getPorts(char  )
    --- Zurücksetzen des Parser-Kontexts für die Instantiierung...
    cport.hpp(24): Analyse: int cPort::getPorts(char  )
[BCC32 Fehler] cport.hpp(46): E2268 Aufruf der undefinierten Funktion 
'minor'
  Vollständiger Parser-Kontext
    cencoder.cpp(6): #include ..\..\..\Desktop\XKilianCom\cport.hpp
    cport.hpp(18): class cPort
    cport.hpp(172): Entscheidung zum Instantiieren: int 
cPort::getPorts(char  )
    --- Zurücksetzen des Parser-Kontexts für die Instantiierung...
    cport.hpp(24): Analyse: int cPort::getPorts(char  )
[BCC32 Fehler] cport.hpp(51): E2268 Aufruf der undefinierten Funktion 
'open'
  Vollständiger Parser-Kontext
    cencoder.cpp(6): #include ..\..\..\Desktop\XKilianCom\cport.hpp
    cport.hpp(18): class cPort
    cport.hpp(172): Entscheidung zum Instantiieren: int 
cPort::getPorts(char  )
    --- Zurücksetzen des Parser-Kontexts für die Instantiierung...
    cport.hpp(24): Analyse: int cPort::getPorts(char  )
[BCC32 Fehler] cport.hpp(55): E2268 Aufruf der undefinierten Funktion 
'tcgetattr'
  Vollständiger Parser-Kontext
    cencoder.cpp(6): #include ..\..\..\Desktop\XKilianCom\cport.hpp
    cport.hpp(18): class cPort
    cport.hpp(172): Entscheidung zum Instantiieren: int 
cPort::getPorts(char  )
    --- Zurücksetzen des Parser-Kontexts für die Instantiierung...
    cport.hpp(24): Analyse: int cPort::getPorts(char  )
[BCC32 Fehler] cport.hpp(66): E2268 Aufruf der undefinierten Funktion 
'close'
  Vollständiger Parser-Kontext
    cencoder.cpp(6): #include ..\..\..\Desktop\XKilianCom\cport.hpp
    cport.hpp(18): class cPort
    cport.hpp(172): Entscheidung zum Instantiieren: int 
cPort::getPorts(char  )
    --- Zurücksetzen des Parser-Kontexts für die Instantiierung...
    cport.hpp(24): Analyse: int cPort::getPorts(char  )
[BCC32 Fehler] cencoder.cpp(14): E2316 'openPort' ist kein Member von 
'cPort'
  Vollständiger Parser-Kontext
    cencoder.cpp(12): Analyse:  cEncoder::cEncoder(const char *,const 
unsigned long)
[BCC32 Fehler] cencoder.cpp(14): E2451 Undefiniertes Symbol 
'intToSpeed_T'
  Vollständiger Parser-Kontext
    cencoder.cpp(12): Analyse:  cEncoder::cEncoder(const char *,const 
unsigned long)
[BCC32 Fehler] cencoder.cpp(36): E2316 'openPort' ist kein Member von 
'cPort'
  Vollständiger Parser-Kontext
    cencoder.cpp(34): Analyse: void cEncoder::reset(const char *,const 
unsigned long)
[BCC32 Fehler] cencoder.cpp(36): E2451 Undefiniertes Symbol 
'intToSpeed_T'
  Vollständiger Parser-Kontext
    cencoder.cpp(34): Analyse: void cEncoder::reset(const char *,const 
unsigned long)
[BCC32 Fehler] cencoder.cpp(50): E2268 Aufruf der undefinierten Funktion 
'usleep'
  Vollständiger Parser-Kontext
    cencoder.cpp(44): Analyse: int cEncoder::getVersion(char *)
[BCC32 Fehler] cencoder.cpp(61): E2268 Aufruf der undefinierten Funktion 
'usleep'
  Vollständiger Parser-Kontext
    cencoder.cpp(44): Analyse: int cEncoder::getVersion(char *)
[BCC32 Fehler] cencoder.cpp(73): E2268 Aufruf der undefinierten Funktion 
'usleep'
  Vollständiger Parser-Kontext
    cencoder.cpp(67): Analyse: unsigned short cEncoder::getVoltage()
[BCC32 Fehler] cencoder.cpp(81): E2268 Aufruf der undefinierten Funktion 
'usleep'
  Vollständiger Parser-Kontext
    cencoder.cpp(67): Analyse: unsigned short cEncoder::getVoltage()
Misslungen
Verstrichene Zeit: 00:00:05.4

Autor: g457 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Was geht da schief?

..steht (etwas versteckt..) in der Ausgabe:
[BCC32 Fehler] cencoder.cpp(2): E2209 include-Datei 'unistd.h' kann
nicht geöffnet werden
[BCC32 Fehler] cport.hpp(3): E2209 include-Datei 'termios.h' kann nicht
geöffnet werden

HTH

Autor: lika (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
[BCC32 Fehler] cencoder.cpp(2): E2209 include-Datei 'unistd.h' kann
nicht geöffnet werden
[BCC32 Fehler] cport.hpp(3): E2209 include-Datei 'termios.h' kann nicht
geöffnet werden
Die Pfade zu den Dateien scheinen nicht zu passen. Das sind Header die 
ich von Linux kennen, dürfte also wichtig sein.
Bei cencoder.cpp läuft auch einiges schief, ich bin kein C++-ler, aber 
da solltest du mal nachschauen. Wobei das auch mit den fehlenden Headern 
oben zusammenhängen kann, normalerweise löst man bei Kompilier-Fehlern 
die Fehler von oben nach unten, da man sonst nur an Folge-Fehlern 
rumhantiert.

Autor: Marc (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aber diese Dateien sind nicht in der TAR Datei drinnen.
Wo bekomm ich diese her?

Autor: Marc (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Termios.h ist ja für die Serielle Schnittstelle oder?

Diese ist doch aber dann nur für Linux?!
Wo bekomme ich die für Windows her?

Autor: lika (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oh, ich dachte du wolltest Cross-Compilieren, ob du die Software auf 
Windows zum Laufen bekommst, ist fraglich. Der Zugriff auf die serielle 
Schnittstelle läuft da (Windows) auch anders ab, also andere Funktionen, 
Header usw.
Was kann die Software denn so tolles, vielleicht gibt es da ja 
Alternativen? Bei meinem polnisch hakst gerade etwas, naja eigentlich 
hakt es da immer und nie nur etwas. ;-)

Autor: Marc (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Software sendet Serielle Befehle an einen ATMEGA8 der gibt dan ein 
PPM Signla aus.
Um R/C Fernbedienungen zu "Simulieren".

Ich habs mit Google übersetzter gemacht :-P

Gibt es da keine Header datei die das unter Windows machen kann?

Autor: Zwie Blum (zwieblum)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nimm' Cygwin statt dem Borland, da sind die Dateien dabei. Wennst Glück 
hast sind die Teile auch im Mingw32 drinnen.

Autor: Marc (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok und wie mache ich das mit Cygwin?

Autor: Matte (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Marc (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe gesucht -.-

Nur nix gefunden sonst hätte ich nicht gefragt -.-

Autor: Zwie Blum (zwieblum)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da sieht man wieder, google liefert für jeden individualisierte 
Ergebnisse, und manchmal wird auch zensuriert. Bei mir jedenfaslls 
liefert die Suche nach "cygwin" als ersten Hit http://www.cygwin.com/ 
und da gibt's sogar eine Dokumentation mit FAQ ...

Autor: mar IO (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Marc schrieb:
> Also ich würde Gerne ein Programm das unter Linux geschrieben worden
> ist, unter Windows Compilieren und natürlich auch benutzen ;-)

unter Linux oder für Linux geschrieben worden?

Autor: Mark Brandis (markbrandis)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
g457 schrieb:
>
[BCC32 Fehler] cencoder.cpp(2): E2209 include-Datei 'unistd.h'
> kann
> nicht geöffnet werden
> [BCC32 Fehler] cport.hpp(3): E2209 include-Datei 'termios.h' kann nicht
> geöffnet werden

Also die unistd.h ist auf jeden Fall in MinGW enthalten. Die termios.h 
wird Dir allerdings unter Windows nicht viel Freunde machen, die ist nun 
mal UNIX- bzw. Linux-spezifisch. Unter Windows funktioniert der Zugriff 
auf /dev Dateien halt so schlecht ;-)

Autor: Mark Brandis (markbrandis)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hm, wobei die termios.h selbst vielleicht nicht so sehr vom 
Betriebssystem abhängig ist (bzw. mit nur wenigen Änderungen kompilerbar 
sein könnte) - die termios.c dagegen sehr wohl, da wird ioctl() 
verwendet.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.