Grosso modo, un « object » c'est un binaire généré par le compilo. Ca n'est pas exécutable : c'est destiné à être linké, statiquement (par le linker, à la compilation) ou dynamiquement (par le binder, à l'execution) à d'autres objets ou a un exétuable.
Une « archive » c'est un fichier qui contient plusieurs « shared objects ». C'est juste un moyen de regrouper tout ca en un fichier. Par exemple sous unix c'est un fichier « .a » généré par l'archiveur historique « ar ». Tu peux voir le contenu d'une archive avec « ar -t file.a ».
Une « library » (bibliothèque en français mais souvent appelée librairie, d'ailleurs je dis librairie et j'ai tord) c'est un binaire ou un ensemble de binaires qui « exportent » des symboles (fonctions, variables) destinés a être utilisés dans un programme. Il y a des librairies statiques et des librairies dynamiques. Un librairie statique est « integrée » dans ton programme a l'édition de lien (au moment de la compilation). Ca grossi donc ton programme. Une librairie dynamique est livrée séparément, et est chargée par ton programme a l'exécution. Ca ne grossi pas ton programme.
Concretement un librairie ça peut se présenter sous la forme d'un fichier objet (.o ou .so), d'un répertoire avec plusieurs fichiers objets a l'intérieur, ou encore d'un fichier archive.
Message édité par matafan le 18-10-2003 à 20:28:09