Estoy implementando en algunos códigos C++ que me gustaría hacer tan portátil como sea posible. Me gustaría evitar las dependencias en las bibliotecas que requieren acceso de root para instalar. Además, preferiría evitar tener copias de bibliotecas grandes en mi repositorio, y también preferiría no hacer instalaciones de bibliotecas a nivel de usuario (simplemente porque tendría que instalarlas manualmente en múltiples computadoras).Compilación con librerías Boost individuales, sin instalar Boost
Me gustaría usar la funcionalidad normal_distribution
de Boost en mi proyecto. Entiendo que la forma típica de instalar Boost requiere un tipo de comando sudo apt-get
o sudo yum
, pero no tengo acceso de administrador en los sistemas donde se ejecutará este código. Para evitar esto, me pregunto si podría simplemente colocar una copia de Boost normal_distribution.cpp y normal_distribution.hpp en mi directorio de código y compilar/vincular mi código con estos archivos. ¿Esto funcionaría?
Los lectores pueden preguntarse por qué no estoy utilizando simplemente la implementación normal_distribution
en TR1 o C++ 11. La respuesta es que necesito mantener la compatibilidad con algunos clústeres administrados por la universidad que aún ejecutan g ++ 4.1.x, que (al menos en mi experiencia) no es compatible con <TR1/random>
.
Nota al margen: El proyecto en el que estoy trabajando no es para nada rentable y no violaría ninguno de los términos de licencia de Boost. – solvingPuzzles
boost tiene una utilidad para extraer las dependencias de cualquier encabezado. no es completamente 100%, pero el trabajo manual se reduce en gran medida. Echale un vistazo. –
Gracias, Alf. Analicé el uso de BCP (http://www.boost.org/doc/libs/1_50_0/tools/bcp/doc/html/index.html) para extraer las dependencias; aún puedo usar esto. Sin embargo, al no estar seguro de cómo es la curva de aprendizaje para BCP, podría ver si aparece algo más fácil antes de probar BCP. – solvingPuzzles