libs是头文件属于[复制]

问题描述 投票:-1回答:2
OS:Debian9 Linux4.4 
Hardware:ARMv9

我怎么知道/usr/include/中哪个libs是头文件属于?

例如,当我构建camera-app-gstreamer时出错:

camera-app-gstreamer/xcore'
drm_display.h:30:17: fatal error: drm.h: No such file or directory
 #include <drm.h>**

我通过apt install libdrm-dev修复了它,在安装了libdrm-dev后,头文件名为drm.hdrm*.h出现在/usr/include中。

现在,我有问题,它显示:

conftest.c:29:41: fatal error: linux/atomisp.h: No such file or directory
#include <linux/atomisp.h> 

我怎样才能找到它属于哪个lib?

谢谢。

linux drm
2个回答
0
投票

使用您的发行版的包内容搜索,在这种情况下,您可以找到它here

如果您通过该搜索找不到文件名,则表示没有提供它的debian软件包。


1
投票

如果你知道文件的完整路径,并且如果它已安装(可能在它运行的计算机上),你可以使用这个dpkg备忘单找出安装它的软件包:

  • dpkg-query -W <pattern> - 列出与给定模式匹配的本地已知包
  • dpkg-query -l - 列出所有本地已知的包裹
  • dpkg -i <packagefile> - 在给定文件中安装包
  • dpkg -r <package> - 删除给定的包
  • dpkg -S /path/to/file - 显示安装给定文件的包

如果要查明系统上是否安装了文件,可以使用locate工具。

如果您想知道将安装哪个软件包,您应该安装apt-file工具并使用它们:

sudo apt-get install apt-file
sudo apt-file update  # will take a while but needs not to be repeated often
apt-file search drm.h

这将列出您的包管理系统知道哪些包含一个文件的包作为名称的一部分。您可以附加| grep '/drm.h$'以仅查找具有此文件的那些。

© www.soinside.com 2019 - 2024. All rights reserved.