Helfen Sie mir, eine Punktzahl zu begleichen.Erstellen von Linux-Binärdateien für mehrere Plattformen
Ich habe ein Stück Software in C++ geschrieben, die auf so viele Linux-Distributionen wie möglich laufen soll und ich muss eine Strategie finden, die effektiv ist. Ich versuche, Binärdateien in diesem Fall nicht Quellcode (möglicherweise gut zu wissen) zu versenden. Es ist bereits ein kommerzielles Produkt und ich habe Probleme mit dem geistigen Eigentum, die mich daran hindern, das Produkt zu beschaffen, sondern auch, dass ich mich mit einer Vielzahl von GPL-Problemen auseinandersetzen muss.
Die aktuelle Argumentationslinie bestand darin, einen kleinsten gemeinsamen Nenner zu wählen und daraus alles aufzubauen. Das hat zwei wichtige Auswirkungen, die ich kontraproduktiv finde.
- Die C++ - Unterstützung in alten Versionen von GCC fehlt einige modernere C++ - Funktionen.
- Der kleinste gemeinsame Nenner bringt Red Hat Enterprise Linux 4 (RHEL4)
ich definitiv nicht brauchen, die die gesamte C++ 11 Feature-Set, aber ich möchte die C++ unterstützen, dass bis bringen von Visual C++ 2010. Ich lese die Idee, Clang/libC++ im Gegensatz zu GCC/libstdC++ wo möglich zu verwenden.
RHEL4 scheint keine umfassende plattformübergreifende Unterstützung für die Erstellung von C++ - Anwendungen zu haben. Ich habe wenig Einblick in die Stabilität von ABI über verschiedene Versionen von Linux, aber ich bin besorgt, dass RHEL4 mehr Mühe als wert ist. Der Versuch, für alle Distributionen basierend auf wenigen zu bauen, ist keine praktikable Strategie.
Ich gehe davon aus, dass Kompilieren von Software für verschiedene Linux-Distributionen am besten durch Kompilieren der Software für die Zielplattform mit Tools auf der Zielplattform erreicht wird. Ich gehe derzeit auch davon aus, dass es bei Linux-Plattformen zu Problemen mit der Portabilität kommt, wenn Sie das nicht akzeptieren. Um nicht über die vielen Bibliotheken zu sprechen, mit denen Sie aufgrund von C++ - ABI-Instabilität plattformübergreifend/verteilbar sein können oder nicht.
Aber ich könnte falsch liegen, ich würde gerne von den Leuten hören, die sich regelmäßig damit beschäftigen. Was wird funktionieren und warum? oder wichtiger, was wird nicht funktionieren?
Wenn ich für Software bezahle was passiert, wenn ich ein großes auf einem Linux berichte, das du nicht hast - um ein Produkt zu unterstützen, musst du das Produkt auf der unterstützten Linux Version getestet haben - also musst du ein haben VM für jeden und baue dort – Mark
@Markiere meine Gedanken genau, es ist Arbeit in Arbeit. –
http://stackoverflow.com/questions/2157636 | http://stackoverflow.com/questions/16250831 | http://StackOverflow.com/Questions/15386027 –