it-swarm.cn

如何检查是否安装了库?

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

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

172
hasen

要以发行发行版*的方式执行此操作,可以将ldconfig与grep一起使用,如下所示:

ldconfig -p | grep libjpeg

如果未安装libjpeg,将没有输出。如果已安装,则将为每个可用版本显示一行。

用您想要的任何库替换libjpeg,并且您可以使用一种通用的,发行版无关的方式来检查库的可用性。

如果由于某种原因未设置ldconfig的路径,则可以尝试使用其完整路径来调用它,通常是/sbin/ldconfig

** 99%的时间*

222
faken

您可以向您的发行版的软件包管理器查询(能力,yum,...),但是由于您没有提供发行版,因此我无法给您正确的命令。

另一种方法可以是运行gcc -ljpeg,如果得到“ ld:-ljpeg找不到库”,则表示gcc尚未找到该库(但这并不意味着未安装该库),如果得到的内容类似于“未定义符号:“ _ main” ,引用自:...'表示已找到libjpeg。

locate libjpeg; ls /usr/lib/libjpeg*; ls /lib/libjpeg*是查找系统中是否安装了lib的其他方法

还有很多其他检查方法,如果您给我们更多的上下文(为什么需要检查是否安装了libjpeg),我们可以为您提供针对特定情况的最佳解决方案。

34
radius

我使用whereis实用程序。

样品:

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

我用这个:

gcc -lpng

安装lib后,将产生:

undefined reference to 'main'

安装lib not时:

cannot find -lpng
12
AndreLDM

对于基于Deb的分发,您可以执行

dpkg -s packagename

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

locate filename

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

9
Kim

在基于Redhat的系统上,可以使用pkg-config来验证是否安装了库。实际上,许多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
4
Saasira

这始终是由Linux上的配置工具完成的。

看一下这 有关autoconf和KDevelop 的教程。

其他技巧将使用ldconfigdpkg之类的命令。

2
nik

您也可以尝试使用dpkg来检查它是否已安装。

dpkg --list | grep [some_key_words_of_your_lib]

此外,在CentOS上,您可以尝试一下。

rpm -qa [lib_name]

1
Scott Yang