Pour gérer vos consentements :
Categories: DéveloppeursProjets

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

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

Recent Posts

Le Réseau interministériel de l’État, sujet à dépendance

La Cour des comptes appelle à formaliser et à professionnaliser certains aspects du RIE, tout…

9 minutes ago

Etalab en position de faiblesse au sein de la Dinum

La Cour des comptes attire l'attention sur le risque d'affaiblissement d'Etalab, privé, ces dernières années,…

2 heures ago

Une Dinum « balbutiante » sur l’open data et les logiciels libres

Missions historiques de la Dinum, l'ouverture des données publiques et la promotion des logiciels libres…

4 heures ago

Pour son premier LLM codeur ouvert, Mistral AI choisit une architecture alternative

Pour développer une version 7B de son modèle Codestral, Mistral AI n'a pas utilisé de…

24 heures ago

Microsoft x Inflection AI : l’autorité de la concurrence britannique lance son enquête

L’Autorité de la concurrence et des marchés (CMA) britannique ouvre une enquête sur les conditions…

1 jour ago

Thomas Gourand, nouveau Directeur Général de Snowflake en France

Thomas Gourand est nommé Directeur Général pour la France. Il est chargé du développement de…

1 jour ago