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

现在我要检查是否已安装libjpeg。

评论

您正在使用什么发行版?

#1 楼

要以发行发行版*的方式执行此操作,可以将ldconfig与grep一起使用,如下所示:如果未安装libjpeg,将不会有输出。如果已安装,则每个可用版本都会显示一行。

用所需的任何库替换libjpeg,并且具有检查库可用性的通用的,发行版无关的方法。未设置,您可以尝试使用其完整路径来调用它,通常是/sbin/ldconfig

** 99%的时间*

评论


这应该作为答案。大!

–user105523
13年12月19日在13:53

不可能用它来检查库的开发版本(标题),对吗?

– andig
15年8月14日在8:08

您可以指定99%次吗? bash:ldconfig:使用xfce在Debian x64 Jessie上找不到命令!这是在debian网站上推荐的debian版本。

–TomášZato-恢复莫妮卡
2015年10月12日13:46

@TomášZato:如果您尝试以超级用户身份运行ldconfig,则ldconfig不可用(显示未找到的命令)。

–Gauthier
16年8月29日在9:01

/ sbin / ldconfig -p无需root就可以为我工作。

– Pedro Gimeno
16年11月9日在4:12

#2 楼

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

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

locate libjpeg; ls /usr/lib/libjpeg*; ls /lib/libjpeg*是查找系统中是否已安装lib的另一种方法。其他检查方式,如果您给我们更多背景信息(为什么需要检查是否安装了libjpeg),我们可以为您提供针对特定情况的最佳解决方案。

评论


如何使用才能找到它?

–步步高
2012年4月3日,下午5:52

#3 楼

我使用whereis实用程序。

示例:

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


#4 楼

我使用它:

gcc -lpng


安装lib时,它产生:

undefined reference to 'main'


当lib时未安装:

cannot find -lpng


#5 楼

对于基于deb的分发,您可以

dpkg -s packagename


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

locate filename


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

评论


对于静态版本,文件名也可以像“ libsomething.a”。

–半径
09年8月16日在16:40

我发现dpkg -s受实用程序限制,因为它需要实际的程序包名称,该名称可能与库本身有些微妙或明显不同。我使用dpkg -s | grep库

–德鲁·斯蒂芬斯(Drew Stephens)
09年8月16日在16:41

@dinomite apt-file是您的朋友:)

–半径
09年8月16日在16:50

#6 楼

在基于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",,, }' #version check


#7 楼

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

请参阅本教程有关autoconf和KDevelop的内容。 >

#8 楼

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

dpkg --list | grep [some_key_words_of_your_lib]

此外,在CentOS上,您可以尝试此操作。

rpm -qa [lib_name]

评论


注意:仅适用于基于Debian的发行版

– ALex_hha
18-10-25在21:33

@ALex_hha是的,谢谢,应该强调这一点。在基于CentOS或Red Hat的系统上,请改用pkg-config。

–杨斯科
18-10-31在9:23