2013-02-04 11 views
8

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.

+0

"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

+0

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

+0

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

risposta

1

Non sono sicuro che sia abbastanza leggero per quello che ti serve (io non sono molto familiare con virtualenv), ma si può provare la CDE Project, che è molto bello modo di creare una sandbox virtuale con tutti i tipi di dipendenze.

+0

Sembra molto interessante quando le dipendenze non cambiano molto. Nel mio caso sono su un computer debian e ho bisogno di sviluppare codice con dipendenze con il sistema operativo SL5. Voglio anche poter usare QtCreator per lo sviluppo. – chmike

Problemi correlati