Comme pour les précédents articles, le système étalon sur lequel les exemples ont été effectués est une Ubuntu 9.10 32 bits. Il est recommandé de l'utiliser, au besoin à l'aide d'un émulateur comme QEmu ou VirtualBox, afin de retrouver les mêmes résultats.
Le fil rouge de cet article sera un simple Hello World dont nous ferons l'offense de rappeler le code source :
#include <stdio.h>
int main(int argc, char *argv[]) {
puts("Hello, ELF!");
return 0;
}
Ce programme sera compilé vers un exécutable dynamique de la façon suivante :
$ gcc test.c -o test
Comme le premier article nous l'a expliqué, cette compilation ajoutera automatiquement une dépendance à la bibliothèque système C qui contient la fonction puts. Cette bibliothèque devra donc être disponible sur le système et chargée en même temps que le programme afin que celui-ci puisse s'exécuter.
Nous produirons également une version statique de ce programme :
$ gcc test.c -static -o test_static
Constatons au passage la...
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première