que he tenido recientemente llamar a ello, en el caso de que sea de utilidad para cualquier otra persona que estos son los pasos que hemos seguido:
- descargar e instalar el LSB SDK
- Descargar una versión de impulsar y extraer a/opt/boost/boost_ < versión > (utilicé 1.43)
- Asegúrese de que libbz2-dev esté instalado.
- Bootstrap con
cd /opt/boost/boost_<version>
./bootstrap.sh --prefix=/opt/boost --without-libraries=python,mpi --without-icu
- Edición
/opt/boost/boost_<version>/project-config.jam
y agregue la línea
using gcc : : /opt/lsb/bin/lsbc++ : <cflags>-U_GNU_SOURCE <cxxflags>-U_GNU_SOURCE ;
cerca de la parte superior del archivo. Tenga en cuenta que esto fallará si tiene una declaración using en uno de los otros archivos desde los cuales lee su configuración, puede pasar --debug-configuration
para tener una idea de qué archivos está leyendo.
./bjam cflags=-fPIC cxxflags=-fPIC linkflags=-fPIC install
Yo no trato de obtener ya sea la pitón o librerías MPI de trabajo, ni tampoco trato de que la UCI se trabaja con la biblioteca boost.regex. El último es probablemente el caso de crear versiones estáticas de las bibliotecas de la ICU con el conjunto de herramientas LSB.
El -fPIC
no es estrictamente necesario para Linux de 32 bits, pero es necesario si desea vincular bibliotecas estáticas en una biblioteca compartida para Linux de 64 bits.
El resultado final debe ser binarios en /opt/boost/lib
y encabezados en /opt/boost/include
, obviamente, puede modificar el prefijo para adaptarlo a sus preferencias. Todavía tengo que hacer una gran cantidad de trabajo antes de transferir todo nuestro código al LSB, por lo que no puedo informar qué tan bien está el proceso de certificación.
¿Desde cuándo es LSB un compilador? Pensé que era solo una especificación de qué bibliotecas y utilidades deberían instalarse y estar disponibles en una distribución de Linux (para que otras bibliotecas y utilidades puedan depender de que estén allí). –
Michael Aaron Safyan: el proyecto LSB proporciona su propio compilador C++ que se puede usar en lugar de GCC, y se supone que produce binarios compatibles con todas las distribuciones de Linux. De hecho, el uso de este compilador para mi propio código da buenos resultados. Sin embargo, tengo problemas con las bibliotecas de terceros utilizadas en mi proyecto. –
@Michael, LSB es un conjunto de especificaciones, pero el grupo de trabajo también proporciona herramientas que ayudan a desarrollar programas que coincidan con estas especificaciones. Vea aquí http://ldn.linuxfoundation.org/lsb/porting-lsb-demo y aquí http://www.linuxfoundation.org/collaborate/workgroups/linux-standard-base-lsb/lsb-sdk-403 –