2013-02-04 3 views
8

Ich muss C++ Programme entwickeln, die auf Scientific Linux 5 oder 6 laufen müssen. Ich möchte mit QtCreator auf Ubuntu entwickeln, das viel neuere Bibliotheken als die auf SCL6 gefunden hat.Gibt es ein Äquivalent von Pythons virtualenv für C/C++ - Programme?

Gibt es ein Äquivalent von Pythons virtualenv für C/C++ - Programme?

Die Verwendung einer Chroot mit allen erforderlichen Bibliotheken und Abhängigkeiten könnte die Aufgabe erledigen. Gibt es das? Siehe http://rcrowley.org/articles/dependencies.html über die Verwendung von Chroot.

+0

"Die Verwendung einer Chroot mit allen erforderlichen Bibliotheken und Abhängigkeiten könnte den Job erledigen. Gibt es das?" - Nun ja, aber Sie müssen es selbst einrichten, und dann können Sie natürlich keine Benutzerdateien aus der Chroot lesen/schreiben. Aber Sie könnten wahrscheinlich die Abhängigkeiten im gleichen Verzeichnis platzieren und/oder LD_LIBRARY_PATH in einem Start-Skript bearbeiten, das Ihre Haupt-App lädt. Aber müssen Sie wirklich neuere Bibliotheken verwenden? Es ist oft schwieriger als Ad-hoc-Updates wie diese. – Rup

+0

Tatsächlich brauche ich nicht wirklich die Sicherheit, die chroot bietet. Betrachtet man jedoch die ldd-Ausgabe meiner Programme im SCL6-Kontext, sehe ich Bibliotheksabhängigkeiten wie /lib/ld-linux.so.2, die sich zwischen Debian und SCL6 unterscheiden können. Ich sehe auch eine Bibliothek linux-gate.so.1, die keinen bestimmten Pfad hat. Ich bin mir nicht einmal sicher, ob das Programm in einer Chroot-Umgebung laufen würde, da ich nicht weiß, wo ich diese Bibliothek ablegen soll. – chmike

+0

Sie nicht. Linux-Gate ist eine Schnittstelle zum Kernel - es ist eine virtuelle Bibliothek und existiert nicht auf der Festplatte. ld-linux ist der Shared-Library-Loader (glaube ich) und auch ziemlich Standard. Jede dieser Bibliotheken, die direkt mit dem Kernel verbunden sind (libc denke ich auch), kann sich zwischen den Linux-Distributionen unterscheiden, da die Kernel unterschiedlich sein werden. Sie sollten nur in der Lage sein, die vorhandenen Bibliotheken zu verwenden. – Rup

Antwort

1

nicht sicher, dass es leicht genug für das, was Sie brauchen (Ich bin nicht sehr vertraut mit virtualenv), aber Sie können die CDE Project versuchen, die ein sehr schön Möglichkeit, eine virtuelle Sandbox mit allen Arten von Abhängigkeiten zu erstellen.

+0

Das sieht sehr interessant aus, wenn sich die Abhängigkeiten nicht viel ändern. In meinem Fall bin ich auf einem Debian-Computer und muss Code mit Abhängigkeiten zu SL5 OS entwickeln. Ich möchte auch QtCreator für die Entwicklung verwenden können. – chmike

Verwandte Themen