Voici un exemple de micro-bibliothèque partagée sous Linux, si tu veux te faire la main. Une fois compilée, elle s'utilise de la même façon que toutes les autres, dont tu as probablement déjà l'habitude :
1 2 3 4 5 6 7 8
| /* ajoute.h */
#ifndef AJOUTE_H
#define AJOUTE_H
double ajoute (double,double);
#endif |
1 2 3 4 5 6 7 8
| /* ajoute.c */
#include "ajoute.h"
double ajoute (double x, double y)
{
return x + y;
} |
Compilation de la bibliothèque :
$ gcc ajoute.c -shared -o ajoute.so
Ajout du répertoire local dans la liste des dépôts de bibliothèques (uniquement pour nos tests) :
$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:.
Programme utilisant la bibliothèque :
1 2 3 4 5 6 7 8
| #include <stdio.h>
#include "ajoute.h"
int main (void)
{
printf ("5 + 8 font %f.\n",ajoute (5,8));
return 0;
} |
Compilation du programme principal :
$ gcc programme.c -shared -o programme
Vérification des bibliothèques dont dépend l'exécutable :
1 2 3 4 5
| $ ldd programme
linux-vdso.so.1 => (0x00007fff263ff000)
libajoute.so => ./libajoute.so (0x00007f93f949c000)
libc.so.6 => /lib64/libc.so.6 (0x0000003692000000)
/lib64/ld-linux-x86-64.so.2 (0x0000003691c00000) |
Et exécution :
1 2
| $ ./programme
5 + 8 font 13.000000. |
Partager