如何知道我需要安装的 Linux 软件包名称才能获得缺少的 C/C++ 库?

How to know the Linux package name I need to install in order to get a missing C/C++ library?

提问人:Rubem Pacelli 提问时间:10/4/2023 更新时间:10/4/2023 访问量:62

问:

在处理 C++ 开源项目时,我注意到以下头文件

#include <cpp/poppler-document.h>
#include <cpp/poppler-page.h>
#include <cpp/poppler-version.h>

我的 Ubuntu 系统上缺少。在互联网上深入研究后,我发现我应该安装以下软件包

sudo apt-get install libpoppler-dev

在我的系统上获取此库。我想知道是否有可能事先知道我应该安装的 Linux 软件包名称,以便获得丢失的库。猜测要链接到头文件的库是否在包中是不平凡的。poppler*.hlibpoppler-dev

C++ C Linux 共享库 头文件

评论

0赞 273K 10/4/2023
packages.ubuntu.com
0赞 kiner_shah 10/4/2023
“我想知道是否有可能事先知道我应该安装的 Linux 软件包名称,以便获得丢失的库”由于它是一个开源项目,他们应该在他们的文档中提到这种依赖关系。如果没有,请在那里提出问题。
0赞 stark 10/4/2023
请注意,dev 包包含开发所需的文件,例如头文件。运行时包将包含该库。
1赞 Rubem Pacelli 10/5/2023
@kiner_shah “既然这是一个开源项目,他们应该在他们的文档中提到这种依赖关系。”确实提到了对poppler的依赖。但是没有说如何安装这个库。我的问题是如何知道 Linux 包名称,而不是库依赖项名称。
0赞 kiner_shah 10/5/2023
@RubemPacelli,我明白了。

答:

3赞 Lloyd Kirk 10/4/2023 #1

可以使用 Web 界面通过在 https://packages.ubuntu.com 中搜索包的内容来查找您要查找的包,正如 237K 在评论中建议的那样。还有一些命令行工具可以做到这一点,即(如果尚未安装,您可能必须这样做)。在我的系统上,它会建议您正在寻找的标题。apt-fileapt-getlibpoppler-cpp-dev

user@host:~$ apt-file -x search 'cpp/poppler-document.h'
libpoppler-cpp-dev: /usr/include/poppler/cpp/poppler-document.h

如果您想进行更聪明的搜索,此工具甚至还有一些正则表达式选项。