Zum Inhalt springen

Bibliothek linken(?)


Empfohlene Beiträge

Geschrieben

Hi,

ich muss mich erst einmal entschuldigen, ich weiß nicht genau, ob linken der richtige begriff ist. *rotwerd*

Auf jeden Fall besteht folgendes Problem: Ich möchte mit meinem gcc Compiler ein Programm compilieren (soweit klingt ja noch alles ganz logisch :D)

Dabei muss ich eine C Bibliothek, die ich per #include im Quelltext eingebunden habe, und die nicht zum Standart-Zeug gehört, dem compiler per

-lNameDerBibo

mitteilen (erfüllt das den Tatbestand des Linkens? *verwirrt bin*)

Nun, leider ist aber die Bibliothek meiner Wahl (COMPLEX.H) eine, die nicht installiert wird, wie andere, sondern einfach "rumliegt".

Weiß vlt. jemand mit welchem Befehl ich die einbinden kann? Wenn ich es auf gewohnte weise versuche, dann wird mir nur mitgeteilt, dass der compiler complex.h nicht in /usr/bin/ld finden kann. :(

Geschrieben

Hi,

linken ist schon der richtige Begriff und ja, man macht das mit der Option -l. Allerdings ist die .h nur eine Headerdatei. Dazu muss es noch irgendwo eine entsprechende lib geben. Wo die liegt, weiss ich nicht.

Was heisst denn "einfach rumliegt"?

Geschrieben

Moin!

Hi,

ich muss mich erst einmal entschuldigen, ich weiß nicht genau, ob linken der richtige begriff ist. *rotwerd*

Auf jeden Fall besteht folgendes Problem: Ich möchte mit meinem gcc Compiler ein Programm compilieren (soweit klingt ja noch alles ganz logisch :D)

Dabei muss ich eine C Bibliothek, die ich per #include im Quelltext eingebunden habe, und die nicht zum Standart-Zeug gehört, dem compiler per

-lNameDerBibo

mitteilen (erfüllt das den Tatbestand des Linkens? *verwirrt bin*)

Nun, leider ist aber die Bibliothek meiner Wahl (COMPLEX.H) eine, die nicht installiert wird, wie andere, sondern einfach "rumliegt".

Weiß vlt. jemand mit welchem Befehl ich die einbinden kann? Wenn ich es auf gewohnte weise versuche, dann wird mir nur mitgeteilt, dass der compiler complex.h nicht in /usr/bin/ld finden kann. :(

man gcc ;)

Mit -L gibst Du Verzeichnisse an, in denen der Compiler (eigentlich: der Linker) zusätzlich zu den in /etc/ld.so.conf eingetragenen Verzeichnissen nach den mit -l angegebenen Bibliotheken suchen soll.

Wenn Du diese lib also nur selten brauchst: -L

Wenn Du sie häufiger brauchst: in einen der System-Bibliotheks-Pfade schmeißen (z.B. /usr/lib) oder ein eigenes Bibliotheks-Verzeichnis einrichten und in /etc/ld.so.conf eintragen (anschließend ldconfig nicht vergessen!)

Ach ja: und mit -I gibts Du zusätzliche Verzeichnisse an, in denen nach Header Files gesucht wird.

Geschrieben

Tut mir Leid, dass ich so lange gebraucht habe, ziemlich viel zu tun!

Danke auf jeden Fall für die ganzen Antworten, dass -I klingt ganz nach der Lösung meiner Wahl, ich hoffe ich kann bald positives berichten.

Danke auch übrigens für den hinweis auf Unterschied: HeaderFile -> Bilbliothek, dass muss ich mir unbedingt genauer anschauen. :)

Geschrieben

Danke auch übrigens für den hinweis auf Unterschied: HeaderFile -> Bilbliothek, dass muss ich mir unbedingt genauer anschauen. :)

Keine schwarze Magie, dadurch wird einfach die Signatur (Deklaration, Schnittstelle) einer Funktion bzw. Bibliothek von ihrer Implementierung getrennt. Die Signatur steht im Header-File, die Implementierung (der Funktionsrumpf) in der Library. Die Schnittstelle einer Bibliothek hat oft eine längere Lebensdauer als ihre Implementierung, so kann letztere also optimiert werden, ohne von der Bibliothek abhängige Anwendungen ändern zu müssen.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...