/usr/include/pci/pci.h が CentOS Linux に欠落しており、g++ を使用して C++ アプリケーションを構築できません。

/usr/include/pci/pci.h が CentOS Linux に欠落しており、g++ を使用して C++ アプリケーションを構築できません。

私は大規模なC / C ++開発プロジェクトを進めており、開発ネットワークとしてRed Hat Enterprise Linux(RHEL)6を使用しており、gccとgmakeと共にg ++も使用しています。

経営陣は、アップグレードおよび/または保守のためにRHELネットワークが中断されている間にソフトウェア開発を継続できるように、Red Hat CentOS Linux 6.10と共にOracle VirtualBox仮想マシンをインストールするように指示しました。 CentOS LinuxとRHELは同じであるため、C / C ++アプリケーションは両方のオペレーティングシステムで作成および実行できる必要があります。

しかし、CentOS Linux VMでアプリケーションの1つを作成しようとしたときに奇妙な問題が発生しました。アプリケーションの複合部分であるcppファイルに含まれる次のファイルが見つからないようです。

/usr/include/pci/pci.h

含まれるステートメントは次のとおりです。

#include <pci/pci.h>

makeを実行すると、次のエラーが発生します。

/usr/bin/ld: cannot find -lpci

C ++アプリケーションを確認すると、実際には2つの異なる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

/usr/include/pci フォルダは CentOS Linux VM には存在しません。また、pciutilsをインストールしようとすると、「すでにインストール済み」というメッセージが表示されます。 /usr/include/linux/pci.hファイルはCentOS Linux仮想マシンにあり、奇妙なことに、lspciコマンドはCentOS Linuxでも機能します。

したがって、この問題についてさまざまなGoogleとBingの検索を試しても、多くの情報は得られませんでした。私はこれが実際にCentOS Linuxのバグだとは思わず、むしろCentOS Linux VMに欠けているpci構成の問題だと思います。問題を解決する方法がわからない。私の考えでは、この問題は解決しやすい問題だと思います。

答え1

をインストールする必要がありますpciutils-devel

関連情報