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


von Marc (Gast)


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_ATmega/index.html

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_ATmega/XKilianCom.tar.gz

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

von g457 (Gast)


Lesenswert?

> Was geht da schief?

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

HTH

von lika (Gast)


Lesenswert?

1
[BCC32 Fehler] cencoder.cpp(2): E2209 include-Datei 'unistd.h' kann
2
nicht geöffnet werden
3
[BCC32 Fehler] cport.hpp(3): E2209 include-Datei 'termios.h' kann nicht
4
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.

von Marc (Gast)


Lesenswert?

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

von Marc (Gast)


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?

von lika (Gast)


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. ;-)

von Marc (Gast)


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?

von Zwie B. (zwieblum)


Lesenswert?

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

von Marc (Gast)


Lesenswert?

Ok und wie mache ich das mit Cygwin?

von Matte (Gast)


Lesenswert?


von Marc (Gast)


Lesenswert?

Ich habe gesucht -.-

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

von Zwie B. (zwieblum)


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 ...

von mar IO (Gast)


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?

von Mark B. (markbrandis)


Lesenswert?

g457 schrieb:
>
1
[BCC32 Fehler] cencoder.cpp(2): E2209 include-Datei 'unistd.h'
2
> kann
3
> nicht geöffnet werden
4
> [BCC32 Fehler] cport.hpp(3): E2209 include-Datei 'termios.h' kann nicht
5
> 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 ;-)

von Mark B. (markbrandis)


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.

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
Noch kein Account? Hier anmelden.