Raspberry Pi et développement : C/C++ à toutes les sauces (épisode 3)

Le C est le langage de base du monde Unix. Le Raspberry Pi est très riche dans ce domaine, avec diverses offres Open Source et commerciales.

Le couple C/C++ reste le plus populaire du classement opéré par Tiobe Software. Il est essentiel pour développer des applications de bas niveau, en particulier dans le monde Unix, où le C est omniprésent. Ceci en fait une des solutions de base pour programmer sur un Raspberry Pi, centré par défaut sur l’OS Raspbian.

GCC, le standard

GCC est de loin la suite d’outils de compilation la plus commune au monde, en particulier sur les OS non propriétaires, où il s’agit souvent de la seule offre viable proposée en standard pour compiler du code C/C++. Il est à noter que GCC n’est pas limité à ces deux langages de programmation : Ada, Fortran, Java ou encore Objective-C sont également à sa portée.

Le support des standards C11 et C++11 est relativement avancé et la portabilité maximale. Le code conçu en C compilé sur un PC x86 Linux via GCC devrait pouvoir être recompilé sans problème sur Raspbian. La compatibilité entre des OS différents demeure plus aléatoire, chose d’autant plus logique qu’elle dépendra des librairies utilisées et des interfaces kernel proposées. Côté optimisations, GCC est un projet que les concepteurs de processeurs suivent de près, et au sein duquel ils apportent leur contribution. Chose valable aussi pour ARM ou Broadcom.

DDE, l’oublié

Pour ceux qui veulent un compilateur capable de produire du code bien adapté au monde des puces ARM, il existe toutefois une alternative à GCC : DDE. Cette offre n’est compatible qu’avec RISC OS, système à réserver aux applications embarquées et incompatible avec Linux. Quel intérêt alors pour le monde business ? Sa proximité avec l’ARM C/C++ Compiler (armcc).

Il serait faux de dire qu’armcc descend de DDE, tout comme il est faux d’affirmer que l’homme descend du singe tel que nous le connaissons. Toutefois, ces deux solutions descendent d’un produit commun, signé Acorn Computers. Le code généré présentera donc d’étranges similitudes. Un élément intéressant pour ceux qui veulent un compilateur proche d’armcc, pour une fraction de son prix. À noter également que DDE propose l’un des assembleurs ARM les plus complets du marché.

L’offre d’ARM n’est pas accessible en mouture compatible avec Raspbian. Il faut ainsi ‘crosscompiler’ le code depuis une machine x86, ce qui peut s’avérer fastidieux. DDE fonctionne directement sur un Raspberry Pi et propose un autre avantage : il est moins cher (35 livres au sein du NutPi, soit environ 49 euros).

Les alternatives

D’autres alternatives à GCC existent. Clang tout d’abord, qui s’appuie sur le projet Open Source LLVM et s’avère disponible sur Raspbian. Il n’est pas installé par défaut avec l’OS, ni aussi optimisé que peut l’être GCC. Il convient toutefois de ne pas l’écarter.

Autre offre, française celle-ci, TCC du très talentueux Fabrice Bellard. TCC fonctionne sur les plates-formes ARM. Le code généré reste peu optimisé, mais est compilé à la vitesse de l’éclair, ce qui permet d’envisager d’effectuer la phase de compilation à la volée, avant le lancement de l’application. Cette caractéristique en fait le plus embarqué des compilateurs C pour le Raspberry Pi.

A lire aussi :
Raspberry Pi et développement : Apprendre à programmer (épisode 1)

Raspberry Pi et développement : Java SE, first class citizen (épisode 2)

Quiz Silicon.fr – Êtes-vous un expert des langages de programmation ?
Quiz Silicon.fr – Les outils de développement rapide (RAD)
Quiz Silicon.fr – 9 questions sur Java 9

Quiz Silicon.fr – L’informatique britannique, du BBC Micro au Raspberry Pi
Quiz Silicon.fr – Savez-vous tout sur le Raspberry Pi 2 ?
Quiz Silicon.fr – 10 questions sur le projet Debian