Quand on ajoute la librairie XYZ a un projet C/C++ il y a trois informations à donner au compilateur et linkeur :
- Le répertoire où se trouve les entêtes des fonctions et classes (-I /path/to/headers)
- Le répertoire où se trouve la librairie (-L /path/to/libs)
- Le nom de de la librairie (-l XYZ)
| "lib" | “XYZ” | ".dll" | ".a" | ".lib" | Nom cherché
+-------+--------+--------+------+--------|
1 | X | X | X | X | | libXYZ.dll.a
+-----------------------------------------|
7 | | X | X | X | | XYZ.dll.a
+-----------------------------------------|
3 | | X | | X | | XYZ.a
+-----------------------------------------|
4 | | X | | | X | XYZ.lib
+-----------------------------------------|
5 | X | X | X | | | libXYZ.dll
+-----------------------------------------|
6 | | X | X | | | XYZ.dll
+-----------------------------------------|
7 | X | X | | X | | libXYZ.a
+-----------------------------------------|
Ceci est répété pour chaque chemin par défaut et pour chaque chemin définit par l'option -L /path/to/libs jusqu’à ce que l’un de ces 7 noms soit trouvé.
Notez que toutes les combinaisons ne sont pas testées: libXYZ.lib ne sera pas cherché par le linkeur.