Jeg ser på ld.so.conf
, den lyder:
include ld.so.conf.d/*.conf
OK, så jeg går til inkluderingen og ser disse filene:
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
Nå er to av disse filene plassholdere, de to andre viser omtrent fem libs mellom dem.
Likevel vil ldconfig -v
liste opp flere sider med libs. Åpenbart er det standard lib-banetildelinger i fedoraen min som spesifiserer disse søkebanene ikke i ld.co.conf
. For eksempel må /usr/lib64
settes et sted, jeg kan ikke spore det via ld.so.conf
.
Jeg kunne ikke identifisere noen lib path miljøvariabel som angir den interne standard lib-banen.
Kommentarer
Svar
ldconfig
ser på noen få “pålitelige kataloger” som standard, i tillegg til de som er eksplisitt oppført i konfigurasjonsfilene. På Fedora på 64-biters x86 er dette /lib
, /lib64
og kataloger tilsvarende maskinvarefunksjonene (vanligvis /lib/i686
, /lib/sse2
, /lib64/tls
, og /lib/sse2
).
Merk at ldconfig
bare påvirker kjøretidsatferd; det påvirker ikke GCC.
/etc/ld.so.conf*
filene inneholder bare kataloger som vil være søkte etter biblioteker av ldconfig (8) når du bygdeld.so.cache
-filen. De ' brukes ikke av verken gcc, ld eller den dynamiske linkeren ld.so (8) – men sistnevnte vil brukeld.so.cache
opprettet av ldconfig.