Comment faire pour installer une bibliothèque partagée sur Ubuntu Linux?
J'ai de la difficulté bibliothèques partagées sur mon Ubuntu 10.04. Je expirienced à plusieurs reprises dans les derniers mois, lu beaucoup de choses sur l'installation de libs, mais il me semble manquer le point.
En commençant par le répertoire de code source, je exécutez les commandes suivantes:
make
Fonctionne proprement, sans aucune erreursudo make install
Semble fonctionner correctement, se termine par:
cp toto..0.1 /usr/local/lib/
rm-f /usr/local/lib/foo.donc
ln -s /usr/local/lib/foo..0.1 /usr/local/lib/foo.doncsudo ldconfig
S'exécute sans sortie
Lors de l'écriture d'un fichier makefile, je ne peux pas l'adresse de la lib par son nom, mais par son chemin d'accès:
Pas de travail: -lfoo
De travail: -L/usr/local/lib/foo.so
Le problème reste le même, peu importe ce que lib j'essaie de l'installer.
Ce qui me manque ici? Ou que puis-je faire pour le savoir?
Favoriser en particulier ne pas utiliser autoconf automake ou, si il n'y a pas de scénario dans lequel vous devez exécuter ces commandes... Avez-vous lu le Boost Guide de démarrage?
boost peut facilement être ajouté dans Ubuntu en utilisant
Je ne pouvais pas utiliser le gestionnaire de paquet, parce que déjà brisé gestionnaire de paquet d'installation de boost et j'en avais besoin rapidement et oui, j'ai lu la prise en main, mais sa il y a longtemps. boost juste shold être un exemple, les autres parties de l'installation a fonctionné.
Alors que le reste de l'GNU/Linux monde a tendance à utiliser automake/autoconf, Boost ne fonctionne pas. Donc Boost est pas juste un exemple, car il est construit par un tout système de construction plus que tout le reste, et donc suit les différentes procédures de construction.
Coup de pouce, de noix, de l'oublier, devraient avoir été qt pas de coup de pouce. Mais je ne me suis mélangé les procédures d'installation. L'effet reste le même. Je ne peux pas utiliser boost libnames dans mon makefile.
boost peut facilement être ajouté dans Ubuntu en utilisant
apt-get
, ou normal de votre gestionnaire de paquets. Chercher des paquets libboost-dev
, ou libboost-all-dev
. Pas besoin de les installer manuellement, sauf si vous avez une version spécifique que vous avez un lien à l'encontre de ce qui est différent de la version fournie par votre référentiel.Je ne pouvais pas utiliser le gestionnaire de paquet, parce que déjà brisé gestionnaire de paquet d'installation de boost et j'en avais besoin rapidement et oui, j'ai lu la prise en main, mais sa il y a longtemps. boost juste shold être un exemple, les autres parties de l'installation a fonctionné.
Alors que le reste de l'GNU/Linux monde a tendance à utiliser automake/autoconf, Boost ne fonctionne pas. Donc Boost est pas juste un exemple, car il est construit par un tout système de construction plus que tout le reste, et donc suit les différentes procédures de construction.
Coup de pouce, de noix, de l'oublier, devraient avoir été qt pas de coup de pouce. Mais je ne me suis mélangé les procédures d'installation. L'effet reste le même. Je ne peux pas utiliser boost libnames dans mon makefile.
OriginalL'auteur user918545 | 2011-08-29
Vous devez vous connecter pour publier un commentaire.
Est
/usr/local/lib/
dans votre chemin de recherche des bibliothèques? Si non, vous aurez besoin de spécifier à la fois-lfoo
et/usr/local/lib/
dans votre Makefile, de sorte que l'éditeur de liens ne sait où regarder.De savoir si ou de ne pas
/usr/local/lib/
est dans votre chemin de recherche des bibliothèques dépend de votre distribution.OriginalL'auteur nobsid
Rappelez-vous que les noms de bibliothèque devrait commencer avec
lib
et à la fin avec.so
. Peut-être que vous êtes absent de départlib
OriginalL'auteur Saurav Yadav