Recentemente ho dovuto chiamare per fare questo, nel caso in cui è utile a chiunque altro questi sono i passi che ho seguito:
- scaricare e installare il LSB SDK
- Scaricare una versione di incrementare ed estrarre in/opt/boost/boost_ <versione> (Ho usato 1,43)
- Assicurarsi che sia installato libbz2-dev.
- Bootstrap con
cd /opt/boost/boost_<version>
./bootstrap.sh --prefix=/opt/boost --without-libraries=python,mpi --without-icu
- Modifica
/opt/boost/boost_<version>/project-config.jam
e aggiungere la riga
using gcc : : /opt/lsb/bin/lsbc++ : <cflags>-U_GNU_SOURCE <cxxflags>-U_GNU_SOURCE ;
vicino alla parte superiore del file. Nota che questo fallirà se hai una dichiarazione usando in uno degli altri file di cui bjam legge la sua configurazione, puoi passare --debug-configuration
per avere un'idea di quali file sta leggendo.
./bjam cflags=-fPIC cxxflags=-fPIC linkflags=-fPIC install
Io non ho cercato di ottenere sia il pitone o librerie MPI di lavoro, né cerco di terapia intensiva di lavoro con la libreria boost.regex. Quest'ultimo è probabilmente un caso di costruzione di versioni statiche delle librerie ICU con il set di strumenti LSB.
Il -fPIC
non è strettamente necessario per Linux a 32 bit, ma è necessario se si desidera collegare librerie statiche in una libreria condivisa per Linux a 64 bit.
Il risultato finale deve essere binari in /opt/boost/lib
e intestazioni in /opt/boost/include
, ovviamente è possibile modificare il prefisso in base alle proprie preferenze. Ho ancora un bel po 'di lavoro da fare prima di aver trasferito tutto il nostro codice all'LSB, quindi non posso riferire quanto bene il processo di certificazione è ancora in corso.
fonte
2010-07-23 11:00:02
Da quando LSB è un compilatore? Ho pensato che fosse solo una specifica di quali librerie e utilità dovessero essere installate e disponibili su una distribuzione Linux (in modo che altre librerie e utility possano dipendere dal fatto che siano lì). –
Michael Aaron Safyan: il progetto LSB fornisce il proprio compilatore C++ che può essere usato al posto di GCC e dovrebbe produrre binari compatibili con tutte le distribuzioni Linux. In effetti, l'uso di questo compilatore per il mio codice dà buoni risultati. Tuttavia, ho problemi con le librerie di terze parti utilizzate nel mio progetto. –
@ Michael, LSB è un insieme di specifiche, ma il gruppo di lavoro fornisce anche strumenti che aiutano a sviluppare programmi che corrispondono a queste specifiche. Vedi qui http://ldn.linuxfoundation.org/lsb/porting-lsb-demo e qui http://www.linuxfoundation.org/collaborate/workgroups/linux-standard-base-lsb/lsb-sdk-403 –