Aiutami a regolare un punteggio.Creazione di file binari di Linux per più piattaforme
Ho un software scritto in C++ che è pensato per funzionare su quante più distribuzioni Linux possibili e ho bisogno di capire una strategia che sia efficace. Sto cercando di spedire i binari in questo caso non il codice sorgente (potrebbe essere utile sapere). È già un prodotto commerciale e ho problemi di proprietà intellettuale che mi impediscono di aprire il prodotto ma significa anche che devo affrontare una miriade di problemi GPL.
L'attuale linea di ragionamento è stata quella di scegliere un minimo comune denominatore e costruire tutto da quello. Questo ha due importanti implicazioni che trovo controproducenti.
- Il supporto C++ nelle vecchie versioni di GCC manca di alcune funzionalità C++ più moderne.
- Il minimo comune denominatore comporta Red Hat Enterprise Linux 4 (RHEL4)
io sicuramente non ho bisogno la funzione dell'intero C++ 11 set ma mi piacerebbe portare sostegno alla ++ C fino a quel di Visual C++ 2010. Sto esaminando l'idea di utilizzare Clang/libC++ invece di GCC/libstdC++ dove possibile.
RHEL4 non sembra avere un esteso supporto multipiattaforma per la compilazione di applicazioni C++, ho più informazioni sulla stabilità di ABI su diverse versioni di Linux, ma temo che RHEL4 sia più un problema che altro. Cercare di costruire per tutte le distribuzioni basate su pochi non è una strategia praticabile.
Sono sotto il presupposto che la compilazione di software per diverse distribuzioni di Linux sia meglio realizzata compilando il software per la piattaforma di destinazione con strumenti sulla piattaforma di destinazione. Attualmente sto operando anche nel presupposto che ti imbatterai in vasti problemi di portabilità su piattaforme cross-line se non lo accetti. Per non parlare delle numerose librerie con cui è possibile o impossibile collegarsi a causa dell'instabilità di C++ ABI su piattaforme/distribuzioni.
Ma potrei sbagliarmi, mi piacerebbe sentire dalle persone che si occupano di questo su base regolare. Cosa funzionerà e perché? o, soprattutto, cosa non funzionerà?
Se sto pagando per software cosa succede se riporto un grande su un Linux che non possiedi - sicuramente per supportare un prodotto devi aver testato il prodotto sulla versione supportata di Linux - quindi devi avere un VM per ognuno e costruisci lì – Mark
@Mark i miei pensieri con precisione, sono lavori in corso. –
http://stackoverflow.com/questions/2157636 | http://stackoverflow.com/questions/16250831 | http://stackoverflow.com/questions/15386027 –