在尝试新软件并使用经典./configure
,make
,make install
流程进行编译时,我经常会看到类似的内容:
error: ____.h: No such file or directory
有时,我很幸运,apt-get install ____
安装了缺失的部分,一切都很顺利。然而,这并不总是发生,我最终谷歌搜索找到包含我需要的包。有时包是错误的版本或风格,并已被我下载的另一个包使用。
人们如何知道哪些包包含哪些.h文件或编译器需要的任何资源?是否有依赖解析器网站或人们用来将失败的构建解码为丢失的包的东西?有没有更现代的方法来自动下载和安装构建的传递依赖项(有点像Java的Maven)?
答案 0 :(得分:3)
如果它是Debian中的软件包,您可以使用apt-get build-dep
来获取所有代码。
否则,请阅读程序附带的自述文件 - 希望它列出该程序的所有代码。
答案 1 :(得分:3)
你也可以使用“auto-apt ./configure”(在Ubuntu上,也可能在Debian上?),它会尝试自动下载依赖项。
答案 2 :(得分:0)
希望在构建软件包的文档中列出所需的软件包。如果它说您需要foo
,则可能需要查找foo
和foo-devel
,以及libfoo-devel
。如果这没有帮助,在Fedora中我会做类似
yum install install /usr/include/_____.h
(yum将查找包含所述文件的包)。如果以上都不起作用,请在Google中查找文件名,该文件名应该告诉您包的来源。但随后会变得粗糙......