Ich schaue auf ld.so.conf
und lese:
include ld.so.conf.d/*.conf
OK, also gehe ich zum Include und sehe diese Dateien:
bind99-x86_64.conf kernel-4.16.11-100.fc26.x86_64.conf kernel-4.11.8-300.fc26.x86_64.conf libiscsi-x86_64.conf
Nun sind zwei dieser Dateien Platzhalter, die anderen beiden listen ungefähr fünf Bibliotheken zwischen ihnen auf.
ldconfig -v
listet jedoch mehrere Seiten mit Bibliotheken auf. Offensichtlich gibt es in meinem Fedora Standard-Lib-Pfadzuweisungen, die diese Suchpfade nicht in ld.co.conf
angeben. Zum Beispiel muss /usr/lib64
irgendwo gesetzt werden, ich kann es nicht über ld.so.conf
verfolgen.
Ich konnte keine identifizieren Umgebungsvariable lib path, die den internen lib-Standardpfad festlegt.
Kommentare
- Die
/etc/ld.so.conf*
-Dateien enthalten nur Verzeichnisse Beim Erstellen der Dateild.so.cache
wurde von ldconfig (8) nach Bibliotheken gesucht. Sie ' werden weder von gcc, ld noch vom dynamischen Linker verwendet ld.so (8) – aber Letzteres verwendet die von ldconfig erstellteld.so.cache
.
Antwort
ldconfig
betrachtet zusätzlich standardmäßig einige „vertrauenswürdige Verzeichnisse“ zu denen, die explizit in den Konfigurationsdateien aufgeführt sind. Unter Fedora unter 64-Bit x86 sind dies die Verzeichnisse /lib
, /lib64
und entsprechend den Hardwarefunktionen (normalerweise /lib/i686
, /lib/sse2
, /lib64/tls
, und /lib/sse2
).
Beachten Sie, dass ldconfig
nur das Laufzeitverhalten beeinflusst. GCC ist davon nicht betroffen.