libs是头文件所属的

时间:2018-01-03 12:29:29

标签: linux drm

OS:Debian9 Linux4.4 
Hardware:ARMv9

我如何知道/usr/include/中的头文件属于哪个库?

例如,

构建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?

谢谢。

2 个答案:

答案 0 :(得分: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$'以仅查找具有此文件的那些。

答案 1 :(得分:0)

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

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