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