Nachteile Crosscompile von Windows für ARM Cortex/Linux

Gast #3994887
Lesenswert?

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
Gast #3994992
Lesenswert?

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.
Persönliche Seite #3995032
Lesenswert?

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?
Gast #3995049
Lesenswert?

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.
#3995299
Lesenswert?

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.
Gast #3995830
Lesenswert?

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.
#3995860
Lesenswert?

> 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.
Gast #3995869
Lesenswert?

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
#3995962
Lesenswert?

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
Persönliche Seite #3996456
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren