Also
unterschied zwischen Lib und Header Datei.
Also eine Header-datei. Unter C mit der Endung .h und unter C++ meist gar keine, .h kann aber noch imm verwendet werden. In einer Header-Datei können Funktionen/ Strukturen /Uions / Enums/ Typen definiert. Wozu das ganz? Naja wenn Projekte größer als eine Datei werden und das tun sie in der Regel auch dann muss man eine Möglichkeit finden jeder .c/cpp Datei mitzuteilen welche Funktionen verfügbar sind welche werte übergeben werden müssen. Da ja zuerst jedes File für sich kompiliert wird weiß es noch nichts von anderen Files zu diesem zweck erstellt man eine .h. Sie wird aber auch verwendet um den Sourcefile mitzuteilen welche Funktionen in den librarys stecken und zum späteren zeitpunkt hinzu gelinkt werden.
Eine Library oder Lib ist eine "grob" Sammlung von Funktionen die meist Allgemein gehalten werden So das sie von mehreren Person/Programmen benutzt werden können. Man unterscheitet zwischen dynamischen Libs die sich schon vor Laufzeit eines Programmes (wenn die lib schon aufgerufen wurde) im Ram befinden und von allen Programmen benutzt werden können. Der
Vorteil ist das man nur eine Lib benötigt die nur einmal in den Ram geladen werden muss. Und statische Libs werden zu jedem Programm statisch hinzu gelinkt. Das heißt der quellcode einer Lib fließt in den Coder der Ausführbaren-datei ein.
Vorteil: Der Entwickler weiß woran er ist, stellt damit auch sicher das das Programm auf den meisten Rechnern läuft. (was bei dyn libs nicht der fall ist wenn sie nicht installiert sind).
Nachteil die Lib wird wenn es 200 Programme gibt die sie benutzen immer in die Datei mit eingebunden und so entsteht erhöhter Daten verbrauch auf der Festplatte.
edit: alles was mit #include hinzugefügt wird sind Header-Dateien. Wenn <> verwendet wird liegt die header Datei in einem speziellen Verzeichnis unter Debian /usr/include . Außer es wird etwas explizit angegeben. Mit "" wird die Header-Datei aus dem Lokalen Verzeichnis eingebunden. zb das source file liegt in /home/user/dev/main.c und ein Header file wird mit #include "main.h" eingebunden dann sucht der Compiler in /home/user/dev/ nach der Header-datei. Außer es wird beim compilieren etwas explizit angegeben.(ein anderer Ordner)
unter
http://www.tutorials.de/forum/linux-tutorials/243221-libs-unter-linux.html findest du ne kleine Anleitung zum erstellen von Librarys...
mfg manhunt