저는 대규모 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에서 애플리케이션 중 하나를 만들려고 할 때 이상한 문제가 발생했습니다. 애플리케이션의 복합 부분인 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
/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
.