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?

Antworten auf die Frage(8)

Ihre Antwort auf die Frage