2010-11-08 14 views
12

Ho RHEL 5.2, con Boost 1.33 installato. Ho scaricato boost_1_44_0.tar.bz2. e lo ha costruito Al termine ha mostrato:Come aggiungere il compilatore include percorsi e percorsi librerie linker per Boost appena installato?

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. Come faccio ad aggiungere i suddetti percorsi di inclusione?
  2. Quando eseguo "rpm -q boost", mostra boost-1.33.1-10.el5. Perché è così, quando ho installato la versione 1.44?
  3. C'è un modo migliore per installare l'ultima versione di Boost?

risposta

10

In primo luogo, ho rimosso il numero di giri spinta esistente utilizzando

rpm -e boost-1.33.1-10.el5 

Viene visualizzato un messaggio che dice "errore:" boost "specifica più pacchetti"

Quindi provato:

rpm -e --allmatches boost 

(non mi ricordo se ho digitato 'spinta' o 'amplificare-1.33.1-10.el5') sono stati mostrati

I pacchetti con dipendenze. ho fatto:

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

e così via e poi fatto:

rpm -e --allmatches 

Questo cancellati aumentare completamente dal mio sistema.

Poi ho estratto boost_1_44_0.tar.bz2 utilizzando boost_1_44_0.tar.bz2 tar -xvjf e corse bootstrap con:

./bootstrap.sh 

poi corse bjam come:

./bjam install 

Questo è tutto! Boost è stato installato sul mio sistema, e non ho dovuto specificare nessuna delle opzioni del linker durante la compilazione dei programmi! Sìì! Ora il comando 'rpm -q boost' mostra che non è installato alcun pacchetto.

+3

La cosa fondamentale qui è ./bjam install, perché le istruzioni lo fanno sembrare ./b2 è il comando da utilizzare per l'installazione. –

+0

Sull'uso di './B2' vs'./Bjam': http://www.boost.org/build/doc/html/bbv2/faq/names.html – digawp

8

è necessario includere queste directory in makefile che si usa per generare l'applicazione opzione

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

-I Aggiunge dir alla lista delle directory che vengono cercato i file #include. opzione

-L aggiunge dir alla lista delle directory cercato librerie dal linker

CC è compilatore sole ...

+1

Yay! ha funzionato! Grazie! Anche se la mia intenzione era quella di avere la vecchia versione di Boost completamente sostituito dal nuova versione In questo momento, i file in/usr/include/boost/sembrano essere stati aggiornati, ma è fastidioso continuare a collegarsi a/home/dfe/Archive/boost_1_44_0 cartella in ogni programma che utilizzo. Qualche cosa posso fare per rendere 1_44_0 la versione di default? – Nav

7

Basta aggiungere i percorsi al vostro .bashrc o .profile (o qualunque sia la tua barca galleggia) in questo modo:

export LIBS="-L/home/dfe/Archive/boost_1_44_0/stage/lib" 
export CPPFLAGS="-I/home/dfe/Archive/boost_1_44_0" 
+0

Non so perché questo sia downvoted ... qualcuno può spiegare cosa c'è di sbagliato in questa risposta? – isomorphismes

9

una possibile ragione è che basta "fare" e non "make install". quindi dovresti eseguire "sudo ./b2 install" non "./ B2"

ci sono sempre lì passi installare software nei sistemi Linux 1.configure "check" 2.make "costruire il software nella directory corrente" 3.make install "copiare i file per i sistemi in modo che il altri software potrebbe utilizzare questo software"

il problema è che avete fatto due passi e un ultimo passo non avessi fatto

+0

Questo è stato utile per il mio Debian8. – amirteymuri

Problemi correlati