Forum: Mikrocontroller und Digitale Elektronik Nachteile Crosscompile von Windows für ARM Cortex/Linux


von Seg (Gast)


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

von Jay (Gast)


Lesenswert?

Nachteile? Du hast halt Windows an der Backe. Manche mögen das, andere 
nicht.

von Vlad T. (vlad_tepesch)


Lesenswert?

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* 

von Seg (Gast)


Lesenswert?

Danke :)

Jetzt mal ernsthaft.

Ist das erzeugte Executable das selbe, oder wird das variieren?

Gibt es unter Windows Einschrnkungen?

Seg

von Jay (Gast)


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.

von (prx) A. K. (prx)


Lesenswert?

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.

von Rufus Τ. F. (rufus) Benutzerseite


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?

von Peter II (Gast)


Lesenswert?

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?

von W.S. (Gast)


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.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

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?

von Ulrich H. (lurchi)


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.

von Bernd K. (prof7bit)


Lesenswert?

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.

von Jay (Gast)


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.

von Joerg W. (joergwolfram)


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.

von Georg (Gast)


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

von M. S. (nickfisher)


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

von Rufus Τ. F. (rufus) Benutzerseite


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.

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.