it-swarm.com.de

Wie werden neue Header-Dateien universell verfügbar gemacht?

Ich habe gerade einige neue Header-Dateien heruntergeladen und habe einen Ordner von ihnen, den ich zur Verfügung stellen möchte. Zunächst möchte ich sie allen Dateien zur Verfügung stellen, die sie verwenden möchten. Daher möchte ich in der Lage sein, die neue Header-Datei (nenne sie newheader.h) dort einzubinden, wo ich möchte, wie zum Beispiel math.h. Wo soll ich es hinstellen?

Zweitens möchte ich diese Dateien allen Benutzern zur Verfügung stellen. Ich habe Root-Berechtigungen. Gibt es ein spezielles Verzeichnis, in das ich es einfügen muss? Vielen Dank!

5
paulinho

Speichern Sie sie in /usr/local/include. Ab http://tldp.org/LDP/Linux-Filesystem-Hierarchy/html/usr.html sind die Elemente in diesem Verzeichnis "... vor dem Überschreiben geschützt, wenn die Systemsoftware aktualisiert wird". Dies ist wichtig, da die von Ihnen heruntergeladenen Header-Dateien nicht durch Systemaktualisierungen überlastet werden sollen. Dies kann passieren, wenn Sie sie in /usr/include einfügen.

10
dsstorefile1

Auf MEINEM System existiert das Verzeichnis /usr/local/include/ und ist leer. Der Filsystem Hierarchy Standard sagt ( FHS 3. ), dass das zu verwendende Verzeichnis /usr/local/include ist. Dateien sollten weltweit lesbar sein (0444) und Verzeichnisse sollten durchsuchbar sein (0555).

6
waltinator

Die Frage ist, was möchten Sie erreichen?

Normalerweise haben Sie drei Szenarien:

  • entwicklung
  • lokale Installation (in Ihrem $HOME)
  • globale Installation

Für die ersten 2 sollten Sie wahrscheinlich den Schalter -I verwenden, um einen Pfad zu den Kopfzeilen anzugeben. Das erste ist wahrscheinlich -I../mylib/include, das zweite ist möglicherweise -I/home/user/local_libs/somelib/include.

Die dritte ist eine globale Installation, die sie in /usr/local/include ablegen sollte, aber von einem Tool wie automake oder cmake verwaltet wird. Beim Packen sollte der Betreuer den Installationspfad und/oder den Include-Pfad anpassen, um die Header auf /usr/include zu installieren.

Wenn Sie automake verwenden, haben Sie möglicherweise Hinweise als --prefixParameter/usr/local für eine sichere Installation, die Systempakete nicht beeinträchtigt, während d. H. Debian-Betreuer ./configure --prefix=/usr in ihren Paketskripten ausführen. Der Include-Pfad wird aus diesem Präfix erstellt und folgt der Paketinstallation.

1
allo