web-dev-qa-db-fra.com

Où Ubuntu stocke-t-il ses fichiers de bibliothèque?

Je veux ajouter ma propre bibliothèque à utiliser dans la compilation c, mais je ne sais pas vraiment où ubuntu la stocke.

17
david25

En vous basant sur les commentaires que vous avez faits à votre question, je pense que ce que vous demandez en réalité est "Comment installer une bibliothèque personnalisée que j'ai écrite et où dois-je la placer?"

En général, les éléments construits localement pour les autres utilisateurs de la machine à l'utilisateur sont placés dans l'arborescence/usr/local. Le fichier d'en-tête doit aller dans/usr/local/include. La bibliothèque compilée doit aller dans/usr/local/lib. Le fichier .c ne fait pas partie de la bibliothèque, il fait partie de la source et n'est pas quelque chose qui n'est normalement pas installé pour l'utilisateur final. Vous aurez besoin d’un accès root pour placer les fichiers à l’un de ces emplacements.

Pour construire la bibliothèque, vous devez d'abord décider si vous voulez une bibliothèque statique ou dynamique (partagée). Pour plus d’informations sur la création d’une bibliothèque partagée, reportez-vous à la section 3.4, Création d’une bibliothèque partagée à http://www.linux.org/docs/ldp/howto/Program-Library-HOWTO/shared -libraries.html . (Ils ont également une recommandation sur l'endroit où placer les choses - la plupart des développeurs auront un avis ou trois :-))

11
jwernerny

En fonction de la bibliothèque, ubuntu stocke ses bibliothèques principalement dans trois emplacements.

  1. / lib
  2. / usr/lib
  3. / usr/local/lib

Ce qui suit provient de la norme de hiérarchie du système de fichiers

/ lib

Le répertoire/lib contient les images de la bibliothèque partagée nécessaires au démarrage du système et à l'exécution des commandes dans le système de fichiers racine, c'est-à-dire. par les binaires dans/bin et/sbin.

/ usr/lib

/ usr/lib inclut les fichiers objet, les bibliothèques et les fichiers binaires internes qui ne sont pas destinés à être exécutés directement par les utilisateurs ou les scripts Shell. [22]

Les applications peuvent utiliser un seul sous-répertoire sous/usr/lib. Si une application utilise un sous-répertoire, toutes les données dépendantes de l'architecture utilisées exclusivement par l'application doivent être placées dans ce sous-répertoire.

/ usr/local/lib contient les bibliothèques locales, c’est-à-dire l’une spécifique à ce système, mais je ne trouve aucune référence à/usr/local/lib dans FHS, elle ne contient que des explications sur/usr/local.

11
binW

Ubuntu est conforme à la norme de hiérarchie des systèmes de fichiers ( http://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard ). Les bibliothèques d'applications régulières doivent être stockées sous/usr/lib.

Veuillez noter que le développement/la gestion de bibliothèques n’est pas un sujet trivial, vous devriez lire une documentation plus détaillée, voici un tutoriel de Nice: http://www.yolinux.com/TUTORIALS/LibraryArchives-StaticAndDynamic.html =

2
João Pinto

Vous devriez indiquer au compilateur où il peut trouver votre bibliothèque. Supposé, le chemin d'accès à votre bibliothèque est "/path/to/lib/libfoo.a", vous pouvez compiler et lier votre programme "hello.c" comme ceci:

gcc -L/path/to/lib -lfoo hello.c

Ce n'est pas spécifique à Ubuntu, en fait tous les compilateurs C que je connais supportent ces drapeaux.

0
Frank