Archives de catégorie : C++

Compilation en mode statique : avantages, inconvénients et mise en œuvre

La plupart du temps, lorsque vous compilez un programme avec g++, votre exécutable est en mode dynamique. Ainsi lorsque vous lancez votre exécutable, celui-ci va charger les bibliothèques qui contiennent le code des fonctions que vous n’avez pas codées (par exemple la méthode cout). Ces bibliothèques dynamiques sont des fichiers « .so » sous GNU/Linux ou « .dll » sous Microsoft Windows.

Lorsque vous compilez un programme en mode statique, le code des fonctions externes est inclus dans l’exécutable final. Vous ne dépendez plus alors de bibliothèques externes, votre exécutable est autonome.

Détaillons un peu plus ce qui précède…
Imprimer cet article Imprimer cet article
Continuer la lecture

Compilation croisée ou compilation à distance ?

Tout d’abord il faut définir ces deux termes :

  • la « cross compilation » ou compilation croisée est le fait de compiler un programme sur une architecture qui n’est pas celle de l’architecture cible. Exemple : vous êtes sur un PC avec un processeur de type Intel en 64bits (architecture LittleEndian) et vous souhaitez compiler pour un RaspberryPi ou une BeagleBoneBlack qui utilise une architecture 32 bits de type ARM (architecture BigEndian). Vous disposez ainsi de toute la puissance et du confort d’une station de travail. Le problème est qu’il faut disposer d’un compilateur croisée.
  • le « remote developpement » ou développement à distance est le fait de saisir son code sur une station de travail performante dans un EDI puis de le transférer et de la compiler sur la cible. Cette technique est plus simple à mettre en œuvre que la précédente mais elle est moins performante car vous compilez sur l’architecture cible qui généralement à des ressources en mémoire et puissance processeur relativement faible.

Dans la suite de cette article, vous mettrez en œuvre ces deux solutions.

Continuer la lecture