GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie geben Sie den Speicherort von Bibliotheken für eine Binärdatei an? (Linux)

Setzen Sie einmalig die Variable LD_LIBRARY_PATH zu einer durch Doppelpunkte getrennten Liste von zu durchsuchenden Verzeichnissen. Dies ist analog zu PATH nach ausführbaren Dateien, außer dass die Standard-Systemverzeichnisse zusätzlich nach denen durchsucht werden, die durch die Umgebung angegeben sind.

LD_LIBRARY_PATH=/usr/local/lib64 ./cart5

Wenn Sie ein Programm haben, das Bibliotheken an einem nicht standardmäßigen Ort aufbewahrt und sie nicht selbst finden kann, können Sie ein Wrapper-Skript schreiben:

#!/bin/sh
if [ -n "$LD_LIBRARY_PATH" ]; then
  LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib64
else
  LD_LIBRARY_PATH=/usr/local/lib64
fi
export LD_LIBRARY_PATH
exec /path/to/cart5 "[email protected]"

Die Liste der Standardsystemverzeichnisse wird in /etc/ld.so.conf geführt . Neuere Systeme erlauben, dass diese Datei andere Dateien enthält; wenn Ihres so etwas wie include /etc/ld.so.conf.d/*.conf enthält , erstellen Sie eine neue Datei namens /etc/ld.so.conf.d/mala.conf mit den Verzeichnissen, die Sie hinzufügen möchten. Nachdem Sie /etc/ld.so.conf geändert haben oder eine enthaltene Datei, führen Sie /sbin/ldconfig aus damit Ihre Änderungen wirksam werden (dadurch wird ein Cache aktualisiert).

(LD_LIBRARY_PATH gilt auch für viele andere Unices, einschließlich FreeBSD, NetBSD, OpenBSD, Solaris und Tru64. HP-UX hat SHLIB_PATH und Mac OS X hat DYLD_LIBRARY_PATH . /etc/ld.so.conf hat Analoga auf den meisten Unices, aber der Ort und die Syntax unterscheiden sich stärker.)


Wenn Sie LD_LIBRARY_PATH vermeiden möchten, können Sie dies auch während des Verlinkens tun:

gcc -o exename -L/path/to/dynamiclib/ -lnameofLib \
    -Wl,-R/path/to/dynamiclib/ sourceCode1.c ...

Das -Wl,... wird verwendet, um zusätzliche Befehle an den Linker zu übergeben, und in diesem Fall weisen Sie den Linker mit -R an, diesen Pfad als "Standardsuchpfad" für die .so.

zu speichern

Ich halte mir auf meiner Seite viele kleine Tipps wie diesen notiert:

https://www.thanassis.space/tricks.html


Linux
  1. So verwenden Sie den Linux-Grep-Befehl

  2. So verwenden Sie den Verlaufsbefehl unter Linux

  3. Wie Linux auf den Mainframe kam

  4. Wie stellen Sie die Hardwareuhr unter Linux programmgesteuert ein?

  5. Wie disassembliere ich eine ausführbare Binärdatei unter Linux, um den Assemblercode zu erhalten?

So erhalten Sie die Größe eines Verzeichnisses in Linux

So überprüfen Sie die Kernel-Version in Linux

So überprüfen Sie die Passwortkomplexität in Linux

So listen Sie die Mitglieder einer Gruppe in Linux auf

So überprüfen Sie den Runlevel unter Linux

So passen Sie den Linux-Befehl top an