Je veux ajouter ma propre bibliothèque à utiliser pour la compilation en c, mais je ne sais pas vraiment où ubuntu la stocke.
Je veux ajouter ma propre bibliothèque à utiliser pour la compilation en c, mais je ne sais pas vraiment où ubuntu la stocke.
Réponses:
Sur la base de vos commentaires à votre question, je pense que ce que vous demandez vraiment est "Comment installer une bibliothèque personnalisée que j'ai écrite et où dois-je la mettre?"
En général, les éléments construits localement pour d'autres sur 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 normalement non installé pour l'usage de l'utilisateur final. Vous aurez besoin d'un accès root pour placer les fichiers dans l'un de ces emplacements.
Pour construire la bibliothèque, vous devrez d'abord construire si vous voulez une bibliothèque statique ou dynamique (partagée). Plus d'informations sur la création d'une bibliothèque partagée peuvent être trouvées dans 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 des recommandations sur l'endroit où mettre les choses - la plupart des développeurs auront une opinion ou trois :-))
Selon la bibliothèque, ubuntu stocke ses bibliothèques principalement dans trois endroits
Ce qui suit provient de la norme de hiérarchie du système de fichiers
/ lib
Le répertoire / lib contient les images de bibliothèque partagée nécessaires pour démarrer le système et exécuter les commandes dans le système de fichiers racine, c'est-à-dire. par des binaires dans / bin et / sbin.
/ usr / lib
/ usr / lib comprend des fichiers objets, des bibliothèques et des 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 des bibliothèques locales c'est-à-dire spécifiques à ce système mais je ne trouve pas de références à / usr / local / lib dans FHS, il ne contient que des explications pour / usr / local.
Ubuntu suit Filesystem Hierarchy Standard ( 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 développer / gérer des bibliothèques n'est pas un sujet banal, vous devriez lire une documentation plus détaillée, voici un joli tutoriel: http://www.yolinux.com/TUTORIALS/LibraryArchives-StaticAndDynamic.html
Vous devez indiquer au compilateur où il peut trouver votre bibliothèque. Supposons que le chemin de votre bibliothèque soit "/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 prennent en charge ces drapeaux.
Dans Ubuntu, ils se trouvent dans /usr/include
.
/usr/include
. Les binaires réels d'une bibliothèque n'y sont pas stockés. Les en-têtes peuvent être considérés comme faisant partie d'une bibliothèque, mais ils doivent être installés séparément, et ils sont utilisés pour compiler des programmes qui utilisent une bibliothèque. Une fois qu'un programme qui utilise une bibliothèque a été compilé, il n'a plus besoin ni n'utilise les fichiers d'en-tête.