Jeg ser på ld.so.conf
, den lyder:
include ld.so.conf.d/*.conf
OK, så jeg går til inkluderingen og ser disse filer:
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
Nu er to af disse filer pladsholdere, de to andre viser omkring fem libs mellem dem.
Alligevel vil ldconfig -v
angive flere sider med libs. Der er tydeligvis standard lib-stiftildelinger i min fedora, der angiver disse søgestier ikke i ld.co.conf
. For eksempel skal /usr/lib64
indstilles et eller andet sted, jeg kan ikke spore det via ld.so.conf
.
Jeg kunne ikke identificere nogen lib path miljøvariabel, der indstiller den interne standard lib path.
Kommentarer
Svar
ldconfig
ser på et par “betroede mapper” som standard til dem, der eksplicit er angivet i dens konfigurationsfiler. På Fedora på 64-bit x86 er disse /lib
, /lib64
og mapper svarende til hardwarefunktioner (typisk /lib/i686
, /lib/sse2
, /lib64/tls
, og /lib/sse2
).
Bemærk, at ldconfig
kun påvirker runtime-opførsel; det påvirker ikke GCC.
/etc/ld.so.conf*
filer indeholder kun mapper der vil være søgte efter biblioteker af ldconfig (8), da man byggedeld.so.cache
filen. De ' bruges ikke af hverken gcc, ld eller den dynamiske linker ld.so (8) – men sidstnævnte brugerld.so.cache
oprettet af ldconfig.