Wie kann ich ein C ++ 11-Programm (mit Abhängigkeiten) unter CentOS 6 bereitstellen, dessen GCC C ++ 03 ist?
GCC ist mit ABI-Kompatibilität großartig, solange Sie denselben C ++ - Standard verwenden 1].
Aber es fällt mir auf, dass wenn eine gemeinsam genutzte Bibliothek, die von GCC 4.3 im C ++ 03-Modus kompiliert wurde, zum Beispiel ein @ anzeistd::string
, das wird ein anderes @ sestd::string
als das, was eine ausführbare Datei versteht, die von GCC 4.8 im C ++ 11-Modus kompiliert wurde.
Der Grund, den ich frage, ist, dass ich vorhabe, ein von GCC 4.8 kompiliertes Programm im C ++ 11-Modus auf CentOS 6 bereitzustellen, dessen maximales GCC-Paket 4.3 ... beträgt, und einige der gemeinsam genutzten Bibliotheken (seien sie C ++ von Drittanbietern) Bibliotheken oder mehr Sachen auf Systemebene) werden daher vermutlich alle C ++ 03 sein. Wäre dies jedoch der Fall, könnten wir niemals C ++ 11-Programme auf älteren Linux-Distributionen bereitstellen, was unwahrscheinlich erscheint.
Bin ich naiv zu denken, dass es hier ein Problem geben könnte? Und wenn ja, wie kann ich das beheben?