Fazit
Für die zahlreichen Linux-Varianten auf dem Raspberry Pi gibt es für viele Programmiersprachen gute Möglichkeiten, durch Crosskompilieren Entwicklungszeit einzusparen und Komfort zu gewinnen. Läuft auf dem RasPi hingegen ein OS-Exot wie RISC OS oder FreeBSD, wird es schwieriger. Crosscompiler für solche Betriebssysteme benötigen beim Bauen deutlich mehr Aufwand (die lange Liste an Patches bei Crosstool-NG spricht hier Bände) oder lassen sich erst gar nicht auftreiben. Hier sind Sie daher auf native Compiler und Entwicklungstools angewiesen. Den Entwicklern der freien Compiler, Tools und notwendigen Bibliotheken steht also noch viel Arbeit bevor – an dieser Stelle herzlichen Dank an alle, die daran mitarbeiten.
Windows als Host-System
Dieser Artikel behandelt hauptsächlich das Crosskompilieren auf einem Linux-System. Selbstverständlich funktioniert das Vorhaben auch unter Windows. Sofern Mono mitspielt, rufen Sie mit Visual Studio entwickelte C#-Programme einfach per mono Programm auf dem RasPi auf. Go muss auch unter Windows als Crosscompiler aus dem Quellcode kompiliert werden. Windows fehlt dafür jedoch ein C-Compiler; die Go-Community empfiehlt, TDM-GCC [8] zu installieren. Für C und C++ greifen Sie am besten auf die Sysprogs-Windows-Toolchain für den Raspberry Pi [9] zurück (Abbildung 7).
Nach dem Einrichten der Toolchain mit Standardeinstellungen finden Sie den Compiler und die nötigen Werkzeuge im Verzeichnis C:\SysGCC\raspberry\bin\. Mit der entsprechenden Option im Installationsassistenten nimmt das System den Ordner automatisch in den Pfad auf. Der Aufruf von arm-linux-gnueabihf-gcc.exe helloworld.c übersetzt dann auch unter Windows ein C-Programm für den Raspberry Pi. Mehr Komfort bieten wie unter Linux entsprechende Entwicklungsumgebungen. Das bereits erwähnte CodeLite gibt es zum Beispiel auch in einer Windows-Version.
Der Autor
Wolfgang Dautermann arbeitet als Systemadministrator an der FH Joanneum in Graz. Als einer der Organisatoren der Grazer Linuxtage ist er tief in der Linux-Community verwurzelt.
Glossar
- Linaro
-
ist ein Zusammenschluss mehrerer namhafter Unternehmen (darunter LG, Broadcom, Qualcomm, Allwinner, MediaTek oder ZTE), der es sich zum Ziel gesetzt hat, zentrale Open-Source-Software wie den Linux-Kernel oder die GNU Compiler Collection (GCC) für ARM-Architekturen zu optimieren [10].
Infos
- Raspberry-Pi-Tools: https://github.com/raspberrypi/tools
- “What do you mean by soft float ABI and hard float ABI?”: http://raspbian.org/RaspbianFAQ#What_do_you_mean_by_.22soft_float_ABI.22_and_.22hard_float_ABI.22.3F
- Crosstool-NG: http://crosstool-ng.org
- Installation von Crosstool-NG: http://crosstool-ng.org/#using_a_released_version
- CodeLite Entwicklungsumgebung: http://www.codelite.org
- Oracle Solaris Studio: http://www.oracle.com/technetwork/server-storage/solarisstudio
- Google Go: https://golang.org
- TDM-GCC: http://tdm-gcc.tdragon.net
- “Sysprogs Windows Toolchain for Raspberry/PI”: http://gnutoolchains.com/raspberry
- Linaro: https://www.linaro.org






