In questo momento compilo il mio software C++ su una certa vecchia versione di linux (SLED 10) usando il gcc fornito e può essere eseguito sulla maggior parte delle versioni più recenti in quanto hanno un glibc più recente. Il problema è che il vecchio gcc non supporta C++ 11 e mi piacerebbe davvero usare le nuove funzionalità.Posso indirizzare il linux più vecchio con gcc/clang più recente? C++
Ora ho alcune idee, ma sono sicuro che gli altri hanno lo stesso bisogno. Cosa ha funzionato per te?
Idee:
- costruire su un sistema più recente, collegamento statico a una nuova glibc. (Non possibile, vero?)
- Costruisci su un sistema più recente, compila e collega un vecchio glibc.
- Build su un sistema precedente che utilizza un gcc aggiornato, collegamento a glibc meno recenti.
- Costruisci su un sistema più recente, collegamento dinamico a glibc più recente, imposta RPath e fornisci al nostro glibc il programma di installazione.
Come bonus, il mio software supporta anche i plug-in e ha un SDK. Preferirei davvero che i miei clienti potessero compilare le mie librerie senza troppi problemi.
Grazie in anticipo. Idee benvenute, soluzioni collaudate preferite.
È questa la mia opzione 3 ? Un nuovo link gcc contro una vecchia libc, o stai suggerendo di collegarmi a una nuova libc e di distribuirla? – David
Probabilmente è più vicino alla tua opzione 4. Non distribuire libc o libstdC++, assicurati che le versioni corrette siano installate sulla macchina di destinazione. –