Frage

03Cp> Ich habe ein paar Projekte, die von zusätzlichen Dateien abhängen, wie Bilder oder Konfigurationsdateien.u003C/

03Cp> Beim Erstellen und Installieren einer Programme wie Okular mit cmake kann ich ein Installationsverzeichnis angeben und make install dazu installieren. Irgendwie wird dieses Programm herausfinden, dass alle seine Abhängigkeiten in diesem Ordner liegen, und nicht mit dem Haupt-Linux-Dateisystem.u003C/

03Cp> Bisher hatte ich absolute Pfade, wie /etc/config.ini. Das Problem ist, dass ich das Programm nicht testen kann, ohne dass es mehr an mein System installiert wird.u003C/

03Cp> Wie kann ich das einfach in C ++ und Python tun?u003C/

War es hilfreich?

Lösung

03Ch2> C / c ++ / andere Sprachen mit CMAKE / AUTOTOOLS / ...u003C/h

03Cp> Die übliche Methode besteht darin, das Build-System entweder das angegebene Installationsverzeichnis als Definitionsflag (-DPREFIX=${CMAKE_INSTALL_PREFX}) an den Compiler zu übergeben oder in einem Konfigurationsheader (#define PREFIX @CMAKE_INSTALL_PREFIX@) geschrieben. Dies wird im Code kompiliert, dadurch werden konstante Werte zur Laufzeit verwendet.u003C/

03Cp> Beachten Sie, dass es wichtig ist, dass das Präfix für die Installation geändert werden kann, dh die Dateien in einem anderen Pfad installieren, von dem, was in den Quellen kompiliert ist. Dies wird beim Erstellen von Paketen und verschiedenen Sonderfällen verwendet, wenn die Dateien letztendlich verknüpft oder in den Speicherort montiert werden, der in dem Code erstellt wurde. Sowohl CMAKE als auch AUTOTOULS ermöglichen dieart standardmäßig.u003C/

03Ch2> Pythonu003C/h

03Cp> Hier gibt die übliche Methode einfach alle Ihre Daten in das Verzeichnis, in dem sich Ihre Module befinden und in sys.path nach ihnen suchen.u003C/

Lizenziert unter: CC-BY-SA mit Zuschreibung
scroll top