Questions relatives à l'execution d'un progra

Fermé
gderac - 31 mars 2005 à 10:24
kmf31 Messages postés 1564 Date d'inscription mercredi 30 mars 2005 Statut Contributeur Dernière intervention 22 juin 2007 - 31 mars 2005 à 14:31
Salut tout le monde !

Qu'un peut-il m'expliquer concretement ce que signifient les termes suivants? :

Librairie
Bibliothèque

En effet, qd on installe un programme sous linux, on est souvent confronté à des messages du type:

Il vous manque telle ou telle librairie ou bibliothèque pour installer ce programme etc....(qui sont des dépendances dont le programme a besoin, le mot dépendance est facile à comprendre lol ) Sous windows, on retrouve les fameuses DLL qui sont les équivalents des librairies sous linux je pense !

Je me suis donc demandé si en fait, une librairie n'était pas une procédure auquel fait appel le programme à moment donné et qu'il était nécessaire de charger pour l'executer.... Je me suis aussi demandé si une bibliothèque n'était pas un ensemble de données manipulées par un programme sans lesquelles, il ne pourrait pas s'exucuter....

Voilà, dites moi si je vois juste et si c pas le cas, merci de m'éclairer

A +

4 réponses

np34 Messages postés 21 Date d'inscription samedi 12 mars 2005 Statut Membre Dernière intervention 9 novembre 2005 5
31 mars 2005 à 10:41
Bonjour à toi,

Avant toute chose, une "librairie" est la même chose qu'une bibliothèque, c'est juste un abus de langage dû à une mauvaise traduction du terme anglais "library". Le bon terme est donc normalement : bibliothèque.

Effectivement comme tu le penses, ces bibliothèques sont équivalentes aux dll de Windows et se trouvent généralement dans les répertoires lib du système de fichier (/lib, /usr/lib, ...) sous des fichiers ayant pour extension .so (share object).

En fait, pour éviter de réinventer la roue à chaque développement d'application, les programmeurs utilisent ces bibliothèques de fonctions toutes faites dans leurs programmes. Ceci dit, il est généralement possible de compiler chaque exécutable de 2 manières :
- lié dynamiquement : c'est ce qui est fait généralement et le programme résultant a besoin des bibliothèques d'objets déjà compilées (fichiers .so) pour fonctionner.
- statiquement : les fonctionnalités nécessaires des bibliothèque sont incluses directement dans l'exécutable lors de la compilation ; il en résulte un fichier binaire plus gros et plus lourd mais qui n'a plus besoin de la présence des bibliothèques sur le système pour s'exécuter.

Dernière chose, lorsque tu as un problème de dépendances dû à une bibliothèque manquante, tu dois installer celle-ci sur ton système. Pour savoir à quel paquetage appartient ce fichier .so et l'installer, tu peux utiliser les fonctionnalités "--provides" des outils de gestion de paquetages de ta distribution (rpm, yum, apt, ...).

Voilou

Nicolas
-
0
OK merci bcp , supers explications ;-)

J'ai les idées claires maintenant :-)

A +
0
et puis il y a le site www.rpmfind.net ou tu peux telecharger pleins de *.rpm et ou il est specifé les dépendances (bibliotheques) avec les liens pour les telecharger...
;)
0
kmf31 Messages postés 1564 Date d'inscription mercredi 30 mars 2005 Statut Contributeur Dernière intervention 22 juin 2007 501
31 mars 2005 à 14:31
Une petite info: Dans les paquets rpms pour les bibliotheques on a deux types qui s'appellent typiquement:

1) lib(nom)-(version).rpm

et

2) lib(nom)-devel-(version).rpm

Le type 1) est necessaire pour faire tourner de programes qui utilisent la bibliotheque en question. Normalement c'est indispensable de les installer (ca depend des choses qu'on fait ou dont on a besoin).

Le type 2) ca sert a compiler soi meme de programes (a partir du code source en C, C++) qui vont utiliser la bibliotheque en question. C'est pour ca il y a le nom "...-devel-..." pour la version developpement. Ces versions sont aussi important meme si on n'est pas developpeur! Il suffit de vouloir installer un paquet tar.gz (paquet source) ou il faut compiler soi meme pour en avoir besoin!

De facon generale, il ne faut pas hesiter d'installer les deux types de bibliotheques et en grand nombre c.-a-d. toute bibliotheque qui parrait potentiellement utile de loin! En tant que debutant on ne se rend pas compte a quel point les applications font appel a des bibliotheques externes, notamment pour les choses graphiques. C'est toujours apres quand un programe refuse de marcher ou de bien compiler ou on tombe sur la question des bibliotheques.
0