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
> 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
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.
Aber diese Dateien sind nicht in der TAR Datei drinnen. Wo bekomm ich diese her?
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?
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. ;-)
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?
Nimm' Cygwin statt dem Borland, da sind die Dateien dabei. Wennst Glück hast sind die Teile auch im Mingw32 drinnen.
Ok und wie mache ich das mit Cygwin?
Ich habe gesucht -.- Nur nix gefunden sonst hätte ich nicht gefragt -.-
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 ...
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?
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 ;-)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.