반응형
# 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 소스 다운로드 중..."
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})
- 위와 같이 경로를 잘 지정해야 두개 이상이 설치된 환경에서 문제가 없음.
반응형
'프로그래밍 > 작은 메모' 카테고리의 다른 글
| 프레임 측정과 현재 시간을 포함한 파일 명으로 OpenCV 이미지 저장 (0) | 2025.05.28 |
|---|---|
| Qt QImage to Opencv Mat(Qt 이미지 ↔ OpenCV 이미지) (0) | 2025.05.20 |
| Ubuntu Opencv Usb campera c++ 기본 예제 (0) | 2025.04.28 |
| Jetson nano 부팅 로고 변경 (0) | 2025.04.11 |
| Jetson orin nano Yolov12 cpp실행 (0) | 2025.04.03 |