Anbringen Der Geteilten Bibliotheken

Dutch French Spanish Portuguese Italian German Japanese Chinese Korean Russian Arabic Bookmark and Share this Article Original English article
  

Das ldconfig Programm erledigt die ganze harte Arbeit des Anbringens einer geteilten Bibliothek. Sie gerechte Notwendigkeit, die Akten in Platz und in laufen gelassenes ldconfig einzusetzen. Folgen Sie diesen Schritten:

1. Copy die geteilte Bibliothek zum Verzeichnis, in dem Sie es halten möchten.

2. Wenn Sie das Verknüpfungsprogramm in der LageSEIN wünschen, die Bibliothek, ohne ihm a zu geben zu finden - Ldirectory Markierungsfahne, die Bibliothek in /usr/lib anzubringen, oder eine Symverbindung in /usr/lib genanntem libname.so diese Punkte zur Akte der geteilten Bibliothek zu bilden. Sie sollten ein relatives symlink (wenn /usr/lib/libc.so auf../../lib/libc.so.5.3.12) zeigt, anstelle von einem absoluten symlink benutzen, würden (/usr/lib/libc.so nicht auf /lib/libc.so.5.3.12 zeigen).

3. Wenn Sie das Verknüpfungsprogramm in der LageSEIN wünschen, die Bibliothek zu finden, ohne sie auf das System anzubringen (oder, bevor es auf das System angebracht wird), stellen Sie eine libname.so Verbindung im aktuellen Verzeichnis gerade wie system-wide her. Dann Gebrauch - L., zum von von GCC zu erklären, im aktuellen Verzeichnis nach Bibliotheken zu schauen.

4. Wenn der volle Name des Verzeichnisses, in dem Sie die Akte der geteilten Bibliothek anbrachten, nicht in /etc/ld.so.conf verzeichnet wird, addieren Sie es, einen Verzeichnisweg pro Linie der Akte.

5. Lassen Sie das ldconfig Programm laufen, das ein anderes symlink im Verzeichnis bildet, in dem Sie die Akte der geteilten Bibliothek vom soname zur Akte anbrachten, die, Sie anbrachten. Sie läßt dann eine Eintragung in der dynamischen Ladevorrichtung cachieren, damit die dynamische Ladevorrichtung Ihre Bibliothek, wenn Sie die Programme laufen lassen, die mit ihr verbunden werden, ohne zu müssen viele, Verzeichnisse zu suchen, um sie zu finden findet.

Wenn Sie /etc/ld.so.cache entfernen, können Sie in der LageSEIN, die Verlangsamung in Ihrem System zu ermitteln. Lassen Sie ldconfig zu verbessertem /etc/ld.so.cache laufen.

Sie müssen Eintragungen in /etc/ld.so.conf verursachen und ldconfig laufen lassen, nur wenn Sie die Bibliotheken anbringen, während System libraries.if Sie erwarten, daß die Programme, die gegen die Bibliothek verbunden werden, automatisch arbeiten.

Beispiel

Als extrem einfaches aber noch lehrreiches Beispiel haben wir eine Bibliothek hergestellt, die eine kurze Funktion enthält. Hier in seiner Ganzheit, ist libhello.c:

1: / * libhello.c */2: 3: # schließen 
Sie ein   
4: 5: heben Sie print_hello(void) auf {6: 
printf("Hello, library.\n"); 7: }  

Selbstverständlich benötigen wir ein Programm, das libhello gebraucht:

1: / * usehello.c */2: 3: # schließen 
Sie "libhello.h" 4 mit ein: 5: interne Hauptleitung 
(Lücke) {6: print_hello(); 7: Rückkehr 0; 8:
}  
Der Inhalt von libhello.h wird als Übung für den Leser gelassen.

Um diese Bibliothek ohne sie in das System anzubringen zu kompilieren und zu benutzen, unternehmen wir die folgenden Schritte:

1. Gebrauch - fPIC, zum einer Gegenstandakte für eine geteilte Bibliothek zu errichten:

GCC - fPIC - Wand - g - c libhello.c  
2. Verbindung libhello gegen die C Bibliothek für beste Auswirkungen auf alle Systeme:

GCC - g - geteiltes - Horizontalebene, -soname, 
libhello.so.0 - O libhello.so.0.0 \ libhello.o - lc  
3. Stellen Sie einen Zeiger vom soname zur Bibliothek her:

ln - sf libhello.so.0.0 libhello.so.0 
4. Stellen Sie einen Zeiger her, damit das Verknüpfungsprogramm verwendet, wenn Anwendungen gegen - lhello verbunden werden:

ln - sf libhello.so.0 libhello.so  
5. , gegen Gebrauch - L., zum des Verknüpfungsprogramms zu veranlassen, um im aktuellen Verzeichnis nach Bibliotheken zu schauen, und zu verwenden - lhello, zum es zu erklären welche Bibliothek zu verbinden:

GCC - Wand - g - c usehello.c - O usehello.o GCC - g
- O usehello usehello.o - L. - lhello  

(auf diese Weise, wenn Sie die Bibliothek auf das System anbringen, anstatt, es im aktuellen Verzeichnis zu lassen, Ihre Anwendung beruhigt Verbindung mit der gleichen Befehl Linie.)
6. Lassen Sie jetzt usehello so laufen:

LD_LIBRARY_PATH=$(pwd) /usehello  
Die LD_LIBRARY_PATH Klimavariable erklärt dem System, wo man nach Bibliotheken sucht. Selbstverständlich können Sie libhello.so anbringen. * im /usr/lib Verzeichnis und vermeiden Sie, die LD_LIBRARY_PATH Klimavariable einzustellen, wenn Sie mögen.
dieses ist ein Artikel, der von Lorent Konenbal hinzugefügt wird


Verzicht: Unsere Web site ist nicht zu der Information verantwortlich, die durch diesen Artikel enthalten wird. Dieser Artikel reflektiert keineswegs die Ansichten, die Meinungen, die Gedanken oder den Glauben des Artikelverzeichnisstabes.

Übersetzung Nachricht: Der Artikel ", der geteilte Bibliotheken" anbringt, wurde mit einem automatisierten Übersetzungsdienst übersetzt. Wir entschuldigen herzlichst uns für alle mögliche Übersetzung Störungen, die auftraten. Danke für das Verstehen.


Online: 1523 users browsing the articles directory