CentOS Linux 上缺少 /usr/include/pci/pci.h 的问题,使用 g++ 构建 C++ 应用程序失败

CentOS Linux 上缺少 /usr/include/pci/pci.h 的问题,使用 g++ 构建 C++ 应用程序失败

我正在从事一个大型 C/C++ 开发项目,我们使用 Red Hat Enterprise Linux (RHEL) 6 作为我们的开发网络,还使用 ​​g++ 和 gcc 以及 gmake。

管理层指示我们安装带有 Red Hat CentOS Linux 6.10 的 Oracle VirtualBox 虚拟机,这样当我们的 RHEL 网络因升级和/或维护而停机时,我们就可以继续进行软件开发。 CentOS Linux 和 RHEL 应该是相同的,因此我们的 C/C++ 应用程序应该能够在任一操作系统上创建和运行。

然而,当我尝试在 CentOS Linux VM 上制作我们的应用程序之一时,遇到了一个奇怪的问题。似乎无法找到包含在作为应用程序的复合部分的 cpp 文件中的以下文件。

/usr/include/pci/pci.h

包含语句是:

#include <pci/pci.h>

执行 make 会产生以下错误:

/usr/bin/ld: cannot find -lpci

检查 C++ 应用程序,它实际上包含两个不同的 pci.h 文件,如下所示:

#include <pci/pci.h>
#include <linux/pci.h>

在我们的 RHEL 上,不会发生错误,这两个包含的文件都存在,以及一些复合 .h 文件:

/usr/include/pci/pci.h
/usr/include/linux/pci.h

在我们的 CentOS Linux VM 上,以下文件夹和文件不存在,但存在于我们的 RHEL 上:

/usr/include/pci/pci.h
/usr/include/pci/config.h
/usr/include/pci/header.h
/usr/include/pci/types.h

我们的 CentOS Linux VM 上不存在 /usr/include/pci 文件夹,此外,尝试安装 pciutils 会显示一条消息“已安装”。文件 /usr/include/linux/pci.h 位于我们的 CentOS Linux 虚拟机上,奇怪的是,lspci 命令也适用于我们的 CentOS Linux。

因此尝试对这个问题进行各种 Google 和 Bing 搜索并没有找到太多信息。我认为这实际上并不是 CentOS Linux 中的错误,而实际上是我们的 CentOS Linux VM 上遗漏了 pci 的配置问题。不太确定如何纠正该问题。我认为这可能是一个很容易解决的问题。

答案1

您需要安装pciutils-devel.

相关内容