Ich untersuche gerade ein gutes Setup für einen Continuous Integration Server, der verschiedene C++ Anwendungen für mehrere Linux-Distributionen erstellen würde.Continuous Integration Server für C++ - Was ist mit Bibliotheksabhängigkeiten?
Meine primäre Frage ist, wie andere Benutzer hier die Unterschiede in Systembibliotheken zwischen Linux-Distributionen behandelt haben?
Während es relativ einfach sein kann, direkte Abhängigkeiten wie UI-Bibliotheken zusammen mit einer Anwendung zu erstellen, scheinen "indirekte" Abhängigkeiten wie glibc ein großer Schmerz zu sein, wenn sie jedes Mal neben der Anwendung erstellt werden müssten. Ich denke daher daran, die tatsächliche Erstellungsausführung in eine separate virtuelle Maschine für jede Verteilung zu verschieben, z. Verwenden Sie rlogin, um die Befehle auszuführen. Mein Ziel ist es, binäre Inkompatibilitäten zwischen Build-Maschinen-Bibliothek-Versionen und denen in den Ziel-Distributionen bereitgestellten zu verhindern.
Hat jemand hier irgendwelche Erfahrung mit einem solchen Prozess und könnte sagen, ob das obige klingt wie ein praktikabler Ansatz?
Ich würde gerne eine gute Antwort auf diese Frage sehen. Neben der ursprünglichen Frage würde ich gerne wissen, wie ich unter Linux auch mingw kompilieren kann (ich verwende mingw in Windows). Außerdem verwende ich das Qt-Framework und QTestLib für Komponententests. Vielen Dank! –
Ich würde auch gerne eine gute Antwort auf diese Frage sehen.IMHO, das geht zu "Configuration Management" Probleme, da jedes Modul zu anderen Modulen "koppelt", und durch die Verknüpfung einer lib, dh Sie müssen implizit die Up-Stream-Bibliotheken verknüpfen. Da dies Lib-Versionsbeschränkungen erfordert, wird dieses Problem schnell kompliziert (z.B. DLL-Hölle oder RPM-Hölle). Indirekte Abhängigkeitsfortpflanzung ist im Zusammenhang mit beschränkten kompatiblen Versionen wesentlich. – charley