现在我要检查是否已安装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
评论
您正在使用什么发行版?