프로그래밍/작은 메모

Ubuntu 22.04 fatal error: pcl/visualization/pcl_visualizer.h: No such file or directory

satnurn 2025. 4. 29. 14:04
반응형

 # error 발생 환경

 - Ubuntu 22.04

 - Vtk-9.1

 - PCL-1.12

 

 

 # pcl_visualizer.h를 찾을 수 없는 문제

 - 설치되지않아 찾을 수 없거나 경로가 맞지않음

 - 또는 VTK 버전과 PCL 버전 불일치

 - 결과적으로 이번은 VTK 버전과 PCL 버전의 불일치 문제를 다룸.

 

 

 # 방법 1. 

 - VTK 버전을 8.x로 다운그레이드

 - 다운 그레이드는 아래의 방법2와 설치 방법 동일. 

 - 가장 간편함.

 

 

# 방법 2.

 - 9.3이상의 VTK 버전 설치.

 - 확실한 호환성을 위해 PCL 버전도 1.14 이상 최신 버전으로 설치.

 

 1) VTK 9.4.2 버전 설치 방법.

 - 지금 설치하는 VTK의 경우 기존 경로인 /usr/local이 아닌 /opt 경로에 설치하여 기존 VTK 버전과 충돌이 나지않게 설치

#!/bin/bash

set -e  # 에러나면 즉시 중단

sudo apt update
sudo apt install -y \
  build-essential \
  cmake \
  git \
  libgl1-mesa-dev \
  libxt-dev \
  qtbase5-dev \
  libx11-dev \
  libxext-dev \
  libxtst-dev \
  libxi-dev \
  libxrender-dev \
  libxcb-glx0-dev \
  libxrandr-dev \
  libxfixes-dev \
  libxcursor-dev \
  libxinerama-dev

echo "VTK 소스 다운로드 중..."
git clone --branch v9.4.2 https://github.com/Kitware/VTK.git
cd VTK

echo "빌드 디렉토리 생성"
mkdir build
cd build

cmake .. \
  -DCMAKE_BUILD_TYPE=Release \
  -DCMAKE_INSTALL_PREFIX=/opt/vtk-9.4.2 \
  -DBUILD_SHARED_LIBS=ON \
  -DVTK_BUILD_EXAMPLES=OFF \
  -DVTK_BUILD_TESTING=OFF \
  -DVTK_WRAP_PYTHON=OFF

echo "컴파일 및 설치 중..."
make -j$(nproc)  #안전하게 make -j2 사용함
sudo make install

echo "VTK 9.4.2 설치 완료!"
echo "설치 경로: /opt/vtk-9.4.2"

 

 - 스크립트를 만들어 실행하거나 명령어를 순서대로 실행.

 

 

 2) PCL-1.15 설치 방법

#!/bin/bash

set -e  # 에러나면 즉시 중단
"
sudo apt update
sudo apt install -y \
  build-essential \
  cmake \
  git \
  libeigen3-dev \
  libboost-all-dev \
  libflann-dev \
  libusb-1.0-0-dev \
  libqhull-dev \
  libvtk9-dev \
  libvtk9-qt-dev \
  qtbase5-dev \
  libopenni-dev \
  libopenni2-dev

echo "PCL 소스 다운로드 중..."
git clone --branch pcl-1.15.0 https://github.com/PointCloudLibrary/pcl.git
cd pcl

echo "빌드 디렉토리 생성"
mkdir build
cd build

cmake .. \
  -DCMAKE_BUILD_TYPE=Release \
  -DCMAKE_INSTALL_PREFIX=/opt/pcl-1.15 \
  -DBUILD_apps=ON \
  -DBUILD_examples=OFF \
  -DBUILD_visualization=ON \
  -DWITH_VTK=ON \
  -DWITH_QT=ON

echo "컴파일 설치 중..."
make -j$(nproc)  #안전하게 make -j2 사용함
sudo make install

echo "PCL 1.15 설치 완료!"
echo "설치 경로: /opt/pcl-1.15"

 

 - 위와 동일하게 스크립트를 만들어 설치하거나 명령어를 순서대로 입력하여 설치.

 

 # 추가적인 CMakeLists.txt 사용법

 - CMakeLists.txt에 아래의 경로 추가.

set(PCL_DIR "/opt/pcl-1.15/share/pcl-1.15")
set(VTK_DIR "/usr/local/vtk9.4.2/lib/cmake/vtk-9.4")
find_package(VTK REQUIRED)
find_package(PCL REQUIRED)

include_directories(${PCL_INCLUDE_DIRS} ${VTK_INCLUDE_DIRS})
target_link_libraries(project ${VTK_LIBRARIES} ${PCL_LIBRARIES})
 

 - 위와 같이 경로를 잘 지정해야 두개 이상이 설치된 환경에서 문제가 없음.

 

 

 

반응형