http://www.pronix.de -> Forum -> Linux-Unix Programmierung

Forum: Linux-Unix Programmierung

Moderatoren: juergen, Martin Conrad

Thema: Frage zu Headerdateien und Bibliotheken

  • (nur registrierte Mitglieder)
Also eine c-Datei enthält ja oftmals Headersateien z.B stdio.h.Die Headerdateien sind eine Art Liste von allen möglichen Funktionen einer bestimmten Bibliothek.Also sind die Funktionen in der Bibliothek definiert, aber wo steht nun z.b die zur stdio.h gehörende Bibliothek in Ubuntu?Werden die für ein Programm nötigen Bibliotheken vom Compiler oder erst vom Linker in die Anwendung "eingearbeitet"? Wie kann ich mit dem gcc compiler eine neue Bibliothek anlegen?
 
Mach mal ein ldd auf dein executable. Danach nm auf die .so Dateien und nach den Funktionsnamen suchen.

BG,
Gerrit
 
Zitat:
Also eine c-Datei enthält ja oftmals Headersateien z.B stdio.h.

Weil dein Programm ja wissen muss, wie die Funktionen aufgerufen werden sollen.
Zitat:
Die Headerdateien sind eine Art Liste von allen möglichen Funktionen einer bestimmten Bibliothek.

Nicht zwangsläufig alle. Manchmal sogar mehr.
Zitat:
Also sind die Funktionen in der Bibliothek definiert, aber wo steht nun z.b die zur stdio.h gehörende Bibliothek in Ubuntu?

Distributionsspezifische Fragen sind besser bei der Distribution aufgehoben Grafik: Smilie Gluecklich

Eine als extern deklarierte Funktion in einer Header-Datei kann von einer beliebigen Anzahl (>=0) von Bibliotheken/Objektdateien bereitgestellt werden, vorzugweise sollte aber am Ende des Tages nur (genau) eine ausgewählt werden, um doppelte Definitionen zu vermeiden.
Zitat:
Werden die für ein Programm nötigen Bibliotheken vom Compiler oder erst vom Linker in die Anwendung "eingearbeitet"?

static inlines im Header: Compiler. externe: Linker.
 
  • (nur registrierte Mitglieder)