Actualmente estoy investigando una buena configuración para un servidor de integración continua que construiría varias aplicaciones C++ para varias distribuciones de Linux.Servidor de integración continua para C++: ¿qué ocurre con las dependencias de biblioteca?
Mi pregunta principal es cómo otros usuarios aquí han manejado las diferencias en las bibliotecas del sistema entre las distribuciones de Linux?
Si bien puede ser relativamente fácil construir dependencias directas como bibliotecas de UI junto con una aplicación, las dependencias "indirectas" como glibc parecen un gran problema si se deben construir junto con la aplicación cada vez. Por lo tanto, estoy pensando en mover la ejecución de compilación real a una máquina virtual separada para cada distribución, p. usando rlogin para ejecutar los comandos. Mi objetivo es evitar las incompatibilidades binarias entre las versiones de biblioteca de máquina de creación y las implementadas en las distribuciones de destino.
¿Alguien aquí tiene alguna experiencia con este proceso y podría decir si lo anterior parece un enfoque factible?
Me gustaría ver una buena respuesta a esta pregunta. Además de la pregunta original, me gustaría saber cómo puedo hacer una compilación cruzada para mingw en Linux también (uso mingw en Windows). Además, utilizo Qt framework y QTestLib para pruebas unitarias. ¡Gracias! –
También me gustaría ver una buena respuesta a esta pregunta.En mi humilde opinión, esto va a problemas de "gestión de la configuración" ya que cada módulo se "acopla" a otros módulos, y al vincular una lib, eso significa que debe vincular implícitamente las librerías ascendentes. Como eso requiere lib-versioning-limitations, este problema se complica rápidamente (por ejemplo, DLL-hell, o RPM-hell). La propagación indirecta de la dependencia es esencial, en el contexto de versiones compatibles limitadas. – charley