it-swarm.asia

bir kütüphanenin kurulu olup olmadığını nasıl kontrol edebilirim?

Linux'ta bir kitaplığın kurulu olup olmadığını nasıl kontrol ederim? (tabii ki komut satırından).

Şimdi özel durumumda libjpeg'in kurulu olup olmadığını kontrol etmek istiyorum.

172
hasen

Bunu distro-bağımsız * bir şekilde yapmak için ldconfig'i grep ile kullanabilirsiniz, örneğin:

ldconfig -p | grep libjpeg

Libjpeg kurulu değilse çıktı alınmayacaktır. Yüklü ise, mevcut her sürüm için bir satır alırsınız.

Libjpeg'i istediğiniz herhangi bir kitaplıkla değiştirin; kitaplık kullanılabilirliğini denetlemek için genel, dağıtımdan bağımsız * bir yolunuz vardır.

Herhangi bir nedenle ldconfig yolu ayarlanmamışsa, tam yolunu (genellikle /sbin/ldconfig.

** Zamanların% 99'u *

222
faken

Dağıtımınızın paket yöneticisiyle (yetenek, yum, ...) kontrol edebilirsiniz, ancak dağıtımınızı yapmadığınız için size doğru komutu veremem.

Başka bir yol da gcc -ljpeg, -ljpeg için 'ld: kütüphane bulunamadı ise, gcc kütüphaneyi bulamadığı anlamına gelir (ancak yüklü olmadığı anlamına gelmez),' Tanımsız semboller: "_main" gibi bir şey alırsanız , kaynak: ... 'libjpeg'nin bulunduğu anlamına gelir.

locate libjpeg; ls /usr/lib/libjpeg*; ls /lib/libjpeg*, sistemdeki lib'in kurulu olup olmadığını bulmanın başka bir yoludur

Bize daha fazla bağlam verirseniz (libjpeg'in yüklü olup olmadığını kontrol etmeniz gerekiyorsa) size özel durumunuz için en iyi çözümü verebileceğimizi kontrol etmenin birçok yolu vardır.

34
radius

whereis yardımcı programını kullanıyorum.

Örneklem:

[email protected]:~$ whereis libjpeg
libjpeg: /usr/lib/libjpeg.so /usr/lib/libjpeg.a /usr/lib/libjpeg.la
17
lifchicker

Bunu kullanıyorum:

gcc -lpng

Lib kurulduğunda, aşağıdakileri verir:

undefined reference to 'main'

Lib not yüklendiğinde:

cannot find -lpng
12
AndreLDM

Deb tabanlı dağıtım için şunları yapabilirsiniz

dpkg -s packagename

Veya yalnızca dosya adını biliyorsanız,

locate filename

Dosya adı genellikle libsomething.so [.version] şeklindedir.

9
Kim

Redhat tabanlı sistemlerde, bir kütüphanenin kurulu olup olmadığını doğrulamak için pkg-config kullanılabilir. Birçok rpm ikili dosyası, yüklemeye devam etmeden önce aynı kontrolleri yapar, bu nedenle makul bir şekilde gerçekliğine güvenebiliriz.

pkg-config --cflags jpeg

pkg-config --libs jpeg

pkg-config --cflags "jpeg >= 1.0.0" # for version check
pkg-config  --modversion jpeg | awk -F. '{ printf "0x%02X%02X%02X\n",$1,$2,$3 }' #version check
4
Saasira

Bu, linux üzerindeki yapılandırma araçları tarafından her zaman yapılır.

Şuna bakın autoconf ve KDevelop hakkında öğretici .

Diğer hileler ldconfig ve dpkg gibi komutları kullanır.

2
nik

Yüklü olup olmadığını kontrol etmek için dpkg kullanmayı da deneyebilirsiniz.

dpkg --list | grep [some_key_words_of_your_lib]

Ayrıca, CentOS'ta bunu deneyebilirsiniz.

rpm -qa [lib_name]

1
Scott Yang