Devo sviluppare programmi C++ che devono essere eseguiti su Scientific Linux 5 o 6. Mi piacerebbe sviluppare con QtCreator su Ubuntu che ha librerie molto più recenti di quella trovata su SCL6.Esiste un equivalente di virtualenv di python per i programmi C/C++?
Esiste un equivalente di virtualenv di Python per i programmi C/C++?
L'utilizzo di un chroot con tutte le librerie e le dipendenze necessarie potrebbe svolgere il lavoro. Questo esiste? Vedi http://rcrowley.org/articles/dependencies.html sull'uso di chroot.
"L'utilizzo di un chroot con tutte le librerie e le dipendenze necessarie potrebbe eseguire il lavoro. Esiste?" - beh sì, ma dovrai configurarlo da solo, e ovviamente non puoi leggere/scrivere file utente da chroot. Ma probabilmente potresti ugualmente posizionare le dipendenze nella stessa directory e/o manipolare LD_LIBRARY_PATH in uno script di avvio che carichi la tua app principale. Ma hai davvero bisogno di usare le librerie più recenti? Spesso è più difficile di quanto valga la pena fare aggiornamenti ad-hoc come questo. – Rup
In effetti non ho davvero bisogno della sicurezza fornita da chroot. Ma guardando l'output ldd dei miei programmi nel contesto SCL6, vedo dipendenze di librerie come /lib/ld-linux.so.2 che potrebbero essere diverse tra Debian e SCL6. Vedo anche una libreria linux-gate.so.1 che non ha un percorso particolare. Quindi non sono nemmeno sicuro che il programma verrebbe eseguito in un ambiente chroot poiché non so dove mettere questa libreria. – chmike
Non lo fai. linux-gate è un'interfaccia per il kernel - è una libreria virtuale e non esiste su disco. ld-linux è il caricatore di librerie condivise (credo) e anche piuttosto standard. Ognuna di queste librerie che si interfacciano direttamente con il kernel (credo che anche libc) possa essere differente tra le distribuzioni Linux perché i kernel saranno diversi. Dovresti solo essere in grado di usare le librerie esistenti sul posto. – Rup