Hallo, für meinen Raspberry Pi entwickel ich aktuell unter Windows/Eclipse/QTCreator mit einer Crosscompiler Toolchain C/C++. Hat dies eigentlich irgendwelche Nachteile? Welche Vorteile hätte eine Entwicklung auf Linuxbasis? Also, ein Arm Cortex Crosscompile von Linux x86 für Arm? Cheers Seg
Nachteile? Du hast halt Windows an der Backe. Manche mögen das, andere nicht.
Seg schrieb: > Welche Vorteile hätte eine Entwicklung auf Linuxbasis? Also, ein Arm > Cortex Crosscompile von Linux x86 für Arm? Vorteile? Du hast halt Linux an der Backe. Manche mögen das, andere nicht. *SCNR*
Danke :) Jetzt mal ernsthaft. Ist das erzeugte Executable das selbe, oder wird das variieren? Gibt es unter Windows Einschrnkungen? Seg
Vlad Tepesch schrieb: > Seg schrieb: >> Welche Vorteile hätte eine Entwicklung auf Linuxbasis? Also, ein Arm >> Cortex Crosscompile von Linux x86 für Arm? > > Vorteile? Du hast halt Linux an der Backe. Manche mögen das, andere > nicht. > > *SCNR* ROFEL Seg schrieb: > Ist das erzeugte Executable das selbe, oder wird das variieren? Es kann variieren. Genaues kann die niemand sagen, da niemand weiß wie die jeweiligen Compiler gebaut sind und welche weitere Software und Bibliotheken Einfluss auf das Compilerverhalten und den Bau deiner Software im allgemeinen haben. > Gibt es unter Windows Einschrnkungen? Windows.
Seg schrieb: > Gibt es unter Windows Einschrnkungen? Bisher gab es auch schon Windows für ARM, aber das war Windows RT, also Windows 8 ausschliesslich mit Kacheloberfläche. Manche einer wird das schon als Einschränkung betrachten.
Jay schrieb: > da niemand weiß wie die jeweiligen Compiler gebaut sind Naja, da man sich unter Windows exakt denselben Compiler bauen kann wie unter Linux ... ist das ein eher inexistentes Problem. Verwendete man einen proprietären Compiler, sähe das anders aus; welcher proprietäre Compiler aber produziert Linux-Binaries?
Rufus Τ. Firefly schrieb: > Verwendete man einen proprietären Compiler, sähe das anders aus; welcher > proprietäre Compiler aber produziert Linux-Binaries? der Intel Compiler?
Rufus Τ. Firefly schrieb: > welcher > proprietäre Compiler aber produziert Linux-Binaries? Eigentlich jeder, der .elf Files erzeugt - vorausgesetzt, man füttert den Linker mit den passenden Daten. Ja, auch der 'Keil' kann .elf erzeugen... ähem, er tut das einfach - als Zwischenprodukt auf dem Wege zum Hex oder Bin file. Aber mal ernsthaft: Soweit ich weiß, gibt es bei ARM ne Community-Version von deren ADS, womit man angeblich alles - auch die Cortex-A und Konsorten - beglücken kann. Ausprobiert hab ich das aber noch nicht. W.S.
Peter II schrieb: > Rufus Τ. Firefly schrieb: > > Verwendete man einen proprietären Compiler, sähe das anders aus; welcher > > proprietäre Compiler aber produziert Linux-Binaries? > > der Intel Compiler? Das tut er aber auch unter Linux selbst. Erzeugt der Intel-Compiler aber auch ARM-Binaries für Linux?
Das Betreibssystem auf dem der Compiler läuft hat so direkt nichts mit dem zu tun für den der Code erzeugt wird. Unter Windows hat man es ggf. bei der Installation etwas einfacher weil die Includes vom Windows nicht so leicht mit denen vom Zielsystem verwechselt werden können. Bei den Pfaden etwa in #Include (...) muss man ggf. aufpassen, weil Windows Pfade mit \ trennt und ggf. Groß-Kleinschreibung anders interpretiert. Fast alle Compiler sorgen da aber für eine Umsetzung, so dass man meistens nichts davon merkt.
Rufus Τ. Firefly schrieb: > Erzeugt der Intel-Compiler aber > auch ARM-Binaries Ich denke mal der Intel Compiler erzeugt Intel Binaries, daher wohl auch der Name.
Rufus Τ. Firefly schrieb: > Jay schrieb: >> da niemand weiß wie die jeweiligen Compiler gebaut sind > > Naja, da man sich unter Windows exakt denselben Compiler bauen kann wie > unter Linux ... ist das ein eher inexistentes Problem. So einfach ist das nicht. Compiler, bzw. der ganze Toolchain nutzt Betriebssystem-Bibliotheken, die sich anders verhalten können. Dann kommt hinzu, dass Compiler wiederum mit Compilern gebaut werden - die jeweils anderen Code erzeugen. Ob zwei, für unterschiedliche Betriebssysteme aus den selben Quellen gebaute, Compiler sich unter allen Umständen exakt gleich verhalten ist bei weitem nicht garantiert.
> Welche Vorteile hätte eine Entwicklung auf Linuxbasis?
Dass man (abgesehen von I/O Sachen) den Pi während der Entwicklung gar
nicht braucht und auf dem Entwicklungssystem (PC/Laptop) testen kann.
Den Compiler für den Pi lasse ich dann auch auf dem Pi laufen, das spart
den Aufwand mit den ganzen Abhängigkeiten. So mache ich es zumindest,
wobei ich GTK statt QT verwende.
Seg schrieb: > Hat dies eigentlich irgendwelche Nachteile? Eher im Gegenteil: wenn du cross entwickelst und dann auf das Zielsystem überträgst, bist du ziemlich sicher, dass das Ergebnis NICHT von dem System abhängig ist, auf dem du entwickelst. Sonst passiert es leicht, dass auf deinem System was installiert ist, was woanders fehlt, und dann läuft dein Compilat nur auf deinem System. Wenn das alles ist was dich interessiert ist es egal. Nur ist halt cross das Testen mühsamer. Eigentlich ist ernsthafte Entwicklung immer teilweise cross: man muss vom eigenen System unabhängig testen, ob das fertige Programm unter Vista, W7, W8, W10 läuft und bei Linux ist das auch nicht anders. Ich habe dazu eine Maschine mit virtuellen Windosen von 3.1 bis 8.1. Georg
Joerg Wolfram schrieb: >> Welche Vorteile hätte eine Entwicklung auf Linuxbasis? > > Dass man (abgesehen von I/O Sachen) den Pi während der Entwicklung gar > nicht braucht und auf dem Entwicklungssystem (PC/Laptop) testen kann. nicht ganz ;) es gibt unter x86 funktionen die es auf arm cpus nicht gibt. hatte mal so ein problem. > Den Compiler für den Pi lasse ich dann auch auf dem Pi laufen, das spart > den Aufwand mit den ganzen Abhängigkeiten. Der Pi braucht dafür dann halt gerne mal länger ;) ich hab schon Pis mehrere tage kompilieren sehen :P
Jay schrieb: > So einfach ist das nicht. Compiler, bzw. der ganze Toolchain nutzt > Betriebssystem-Bibliotheken, die sich anders verhalten können. Dann aber ist jeder Compiler auf jedem Computer einzigartig, weil sich auch zwei Computer mit dem gleichen Betriebssystem darauf unterschiedlich verhalten können. Mir scheint diese Art der Betrachtung wenig zielführend.
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.