web-dev-qa-db-fra.com

Comment ajouter des chemins d'inclusion de compilateur et des chemins de bibliothèque de l'éditeur de liens pour Boost nouvellement installé?

J'ai RHEL 5.2, avec Boost 1.33 installé. J'ai téléchargé boost_1_44_0.tar.bz2. et l'a construit. À l'achèvement, il a montré:

The Boost C++ Libraries were successfully built!

The following directory should be added to compiler include paths:

    /home/dfe/Archive/boost_1_44_0

The following directory should be added to linker library paths:

    /home/dfe/Archive/boost_1_44_0/stage/lib
  1. Comment ajouter les chemins d'inclusion mentionnés ci-dessus?
  2. Quand je fais "rpm -q boost", il montre boost-1.33.1-10.el5. Pourquoi en est-il ainsi lorsque j'ai installé la version 1.44?
  3. Existe-t-il un meilleur moyen d'installer la dernière version de Boost?
18
Nav

Tout d'abord, j'ai supprimé le boost rpm existant en utilisant

rpm -e boost-1.33.1-10.el5

Un message s'affiche indiquant "erreur:" boost "spécifie plusieurs packages"

Puis essayé:

rpm -e --allmatches boost

(Je ne me souviens pas si j'ai tapé 'boost' ou 'boost-1.33.1-10.el5')

Les packages avec dépendances ont été affichés. J'ai fait:

rpm -e [packagename1]
rpm -e [packagename2]

et ainsi de suite, puis a fait:

rpm -e --allmatches

Ce boost effacé complètement de mon système.

Ensuite, j'ai extrait boost_1_44_0.tar.bz2 en utilisant tar -xvjf boost_1_44_0.tar.bz2 et j'ai exécuté bootstrap avec:

./bootstrap.sh

Puis exécuté bjam en tant que:

./bjam install

C'est tout! Boost a été installé sur mon système, et je n'ai eu à spécifier aucune des options de l'éditeur de liens lors de la compilation des programmes! Yay! La commande 'rpm -q boost' montre maintenant qu'aucun paquet n'est installé.

11
Nav

une raison possible est que vous "faites" simplement "pas installer". vous devez donc exécuter "Sudo ./b2 install" et non "./b2"

il y a toujours des étapes pour installer les logiciels dans les systèmes linux

le problème est que vous avez fait deux étapes et une dernière étape

13
user2716834

Ajoutez simplement les chemins à votre .bashrc ou .profile (ou à tout ce qui fait flotter votre bateau) comme ceci:

export LIBS="-L/home/dfe/Archive/boost_1_44_0/stage/lib"
export CPPFLAGS="-I/home/dfe/Archive/boost_1_44_0"
9
der_michael

Vous devez inclure ces répertoires dans le makefile que vous utiliseriez pour construire votre application

CC -I/home/dfe/Archive/boost_1_44_0 -L/home/dfe/Archive/boost_1_44_0/stage/lib yourprogram.cpp

-I option Ajoute dir à la liste des répertoires recherchés pour les fichiers #include.

L'option -L ajoute dir à la liste des répertoires recherchés pour les bibliothèques par l'éditeur de liens

CC est un compilateur Sun ...

9
jRJ