2015-04-27 7 views
5

Durante il tentativo di creare la libreria C++ thrift, ho trovato il seguente errore dopo aver specificato l'opzione --with-boost.Che cos'è una libreria potenziata graduale?

Se si dispone di una libreria di spinta messa in scena (non ancora installato) si prega di specificare $ BOOST_ROOT nel proprio ambiente e non danno un percorso per opzione --with-boost.

ho guardato attraverso la documentazione di spinta (che è io non sono eccessivamente familiarità con), ma non ho trovato una buona definizione per il termine staged boost library. Vedo il parentetico (still not installed), ma ci sono molti stati che una libreria può trovarsi in quell'autunno sotto la categoria not installed.

Quando scarico per la prima volta boost, eseguo ./bootstrap e ./b2 per compilarlo.

È staged a questo punto? O devo fare qualcos'altro per renderlo staged?

risposta

4

È possibile chiamare

b2 --help 

per visualizzare le opzioni di Boost.Build, e vi si possono trovare

install     Install headers and compiled library files to the 
=======     configured locations (below). 
... 
stage     Build and install only compiled library files to the 
=====     stage directory. 

La dichiarazione di stage o install specifica se le librerie Boost sono installati in una sottocartella denominata stage o a livello di sistema. Il significato di tutto il sistema dipende dal sistema operativo. In Windows, la directory di destinazione è c:\boost, in Linux è /usr/local. La directory di destinazione può anche essere specificata esplicitamente usando l'opzione -–prefix. Vedi anche this answer, immagino che sarà utile.

Per ulteriori informazioni vedere Guida introduttiva per Windows o Linux.

+0

"La dichiarazione di stage o installazione specifica se le librerie Boost sono installate in una sottocartella denominata stage o system-wide." No, questo non è vero. 'install' sicuramente non installa a livello di sistema; fa esattamente quello che dice il doc: installa nelle posizioni configurate. Per quelli di noi che costruiscono per il cross-compiling, non installiamo mai a livello di sistema, ma usiamo sicuramente l'installazione. –

2

Quando si esegue .\b2 per compilare Boost, viene creata una cartella denominata stage e l'output della compilation viene inserito nella cartella% BOOST_ROOT% \ stage \ lib. Ora puoi copiare questa cartella lib da qualche parte e aggiungerla al percorso del linker. Tuttavia alcuni progetti potrebbero aspettarsi che i binari siano disponibili allo stage \ lib. Quindi "messo in scena" qui significa che se hai librerie compilate e presenti nella cartella stage \ lib. Il comando .b2 richiede diversi parametri diversi per compilare diversi ragazzi di binari, ad esempio, di seguito compila file binari che sono collegati a runtime condivisa e il targeting architettura x64:

b2 variant=debug,release link=shared runtime-link=shared address-model=64 

Ogni variante del nome del file lib ha tag in modo che don' t sovrascrivere l'un l'altro, ad esempio, libboost_date_time-vc140-mt-gd-1_62.lib.

Problemi correlati