• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst]eigene headerdateien wo einfügen?

Little_C

Member
Hallo,
ich wollte gerne wissen wo ich eigens geschriebene Header-Dateien einfügen muss, um mir so im #include <> befehl ewig lange paths zu meiner Header-Datei ersparen zu können.

das es dann am ende so aussieht:

Code:
 #include <meine_header.h>

Danke schon mal !
 
A

Anonymous

Gast
Little_C schrieb:
ich wollte gerne wissen wo ich eigens geschriebene Header-Dateien einfügen muss, um mir so im #include <> befehl ewig lange paths zu meiner Header-Datei ersparen zu können.

- Die meisten Header-Dateien (während der Programmentwicklung alle neuen) gehören genau in das selbe Verzeichnis wie der andere Quellcode auch. (oder relativ im Path dazu). Einfügen dann mit
#include "datei.h" oder relativ eben dann zB "../../neudir/datei.h"
Erst wenn die fertig übersetzten Programme dann installiert werden, könnten auch einige Headerdateien mit installiert werden müssen/sollen.
In aller Regel läßt man das aber offen und regelt den Installationspath der Includedateien über configure automatisch.

Ansonsten gilt etwa folgendes:
- einige ganz wenige deiner selbst geschriebenen Header sollten nach
/usr/local/include oder /usr/local/*/include aber am besten erst mit der Installationsroutine.
Das sind zB Header für eigen geschriebene Libs oder Programme die von allen Usern genutzt werden können und deren Header aus irgend einem Grunde von Interesse sind, oder die für die Entwicklung weiterer Programmteile benötigen werden.

- noch viel,viel weniger deiner selbst geschriebenen Header sollten nach
/include oder /usr/include oder in deren Unterverzeichnisse , aber auch erst mit der Installationsroutine
außer du entwickelst selbst am Betriebssystem, den Treibern oder irgendwas, was mal zu (d)einer (eigenen) Distribution dazugehören soll.

- einiges sollte am Besten nach /opt/*/include ( wie oben erst bei der Installation)
wenn du zB. eigene optionale größere Programmpakete entwickelst


Der ganze Rest deiner eigenen Programmierkünste gehört nach oder unterhalb von
/home/$USERNAME/include oder /home/*/Projekt/include
solange du alleine daran arbeitest.


Wenn du ein Verzeichniss mit Headerdateien hast, kannst du es jederzeit beim Kompilieren gcc oder g++ bekanntgeben. Dann könntest du dir unnötig langes benennen der genauen Direktories im Quelltext sparen.

-I dir
Add the directory dir to the list of directories to be
searched for header files. Directories named by -I
are searched before the standard system include direc­
tories. If the directory dir is a standard system
include directory, the option is ignored to ensure
that the default search order for system directories
and the special treatment of system headers are not
defeated .

Das ist für Progammübungen recht praktisch, allerdings sollte das Ganze zu einem späterem Zeitpunkt auch noch mal kompilierbar sein, oder auch auf anderen Rechnern oder von anderen Usern kompilierbar sein, wird es oftmals kompliziert wenn dann spezielle Headerdateien außerhalb des nomalen Quellcodes benötigt werden.

robi
 
Oben