如何检查一个库是否安装?

在Linux中,如何检查是否安装? (从当然的命令行)。

在我现在的具体情况下,我想检查是否安装了libjpeg。

    要以独立于发行版的方式执行此操作,可以使用带grep的ldconfig,如下所示:

    ldconfig -p | grep libjpeg 

    如果libjpeg没有安装,将不会有输出。 如果已安装,则会为每个可用版本获取一行。

    用你想要的任何库replacelibjpeg,并且你有一个通用的,独立于发行版的*检查库可用性的方法。

    ** 99%的时间*

    你可以检查你的发行包的软件包(aptitude,yum,…),但是因为你没有给你的发行版,我不能给你正确的命令。

    另一种方法是运行gcc -ljpeg ,如果你得到'ld:library not-for -ljpeg',这意味着gcc没有find这个库(但这并不意味着它没有安装),如果你得到类似的东西'未定义的符号:“_main”,引用自:…“这意味着libjpeg已被find。

    locate libjpeg; ls /usr/lib/libjpeg*; ls /lib/libjpeg* locate libjpeg; ls /usr/lib/libjpeg*; ls /lib/libjpeg*是另外一些方法来查找是否在系统中安装了lib

    还有很多其他的方法来检查,如果你给我们更多的上下文(为什么你需要检查libjpeg是否安装),我们可以给你最好的解决scheme,为您的具体情况。

    我使用whereis实用程序。
    样品:

    l1feh4ck3r @ xxx:〜$ whereis libjpeg
    libjpeg:/usr/lib/libjpeg.so /usr/lib/libjpeg.a /usr/lib/libjpeg.la

    对于基于deb的分发,你可以做

     dpkg -s packagename 

    或者如果您只知道文件名,请使用

     locate filename 

    文件名通常是libsomething.so [.version]。

    我使用这个:

     gcc -lpng 

    当lib被安装时,它会产生:

     undefined reference to 'main' 

    当lib 没有安装时:

     cannot find -lpng 

    在基于Redhat的系统上,可以使用pkg-config来validation库是否已安装。 在进行安装之前,许多rpm二进制文件实际上会进行相同的检查,所以我们可以合理地依赖它的准确性。

     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 

    这一直由linux上的configuration工具完成。

    看看这个关于autoconf和KDevelop的教程

    其他技巧将使用像ldconfigdpkg命令。