
PCL 설치 및 프로젝트 생성
2022-10-06 last update
5 minutes reading C++ CMakeLists CMake PCL점 구름을 조작하는 라이브러리 Point Cloud Library를 windows에 설치하고 CMake에서 프로젝트 생성하기까지의 이야기.
Windows10 PCL 1.8.1
PCL 설치
PCL 설치
PCL은 외부 종속 라이브러리가 있기 때문에 모든 것을 직접 준비하는 것은 번거롭습니다. 하지만 고맙게도 All In One 설치 프로그램 가 있기 때문에 이용하도록 합시다( 참고 ). 참고에도 언급이 있는 바와 같이, 환경 변수의 설정은 잊지 않고. 끼워넣습니다.
도중 OpenNI 의 인스톨에 실패했습니다만, 점군 데이터를 파일로부터 읽고 쓰기하는 만큼에는 이용하지 말아 방치.
재미 있습니다.
프로젝트 생성
C++를 만나기 때문에 Visual Studio를 사용합니다. 참조하는 외부 파일이 대량으로 있으므로 직접 설정하는 것은 번거롭습니다. CMake를 사용합시다.
CMakeLists.txt 에 아래와 같이 기술해 main.cpp 를 포함한 프로젝트 "pcl_project"를 만듭니다. PCL을 포함하여 CMakeLists.txt의 편지지는 여기에서 가져 왔습니다.
cmake_minimum_required( VERSION 2.8 )
# Create Project
project( pcl_project )
add_executable( test main.cpp)
# Set StartUp Project (Option)
# (This setting is able to enable by using CMake 3.6.0 RC1 or later.)
set_property( DIRECTORY PROPERTY VS_STARTUP_PROJECT "test" )
# CMake 3.12 and above in order to suppress a lot of warnning
# cmake_policy(SET CMP0074 OLD)
# PCLConfing.cmake can not find VTK, so specify its location directly
# set(VTK_DIR "C:/Program Files/VTK/lib/cmake/vtk-8.0" CACHE PATH "VTK directory override" FORCE)
# Find Packages
find_package( PCL 1.8 REQUIRED )
if( PCL_FOUND )
# [C/C++]>[General]>[Additional Include Directories]
include_directories( ${PCL_INCLUDE_DIRS} )
# [C/C++]>[Preprocessor]>[Preprocessor Definitions]
add_definitions( ${PCL_DEFINITIONS} )
# For Use Not PreCompiled Features
add_definitions( -DPCL_NO_PRECOMPILE )
# [Linker]>[General]>[Additional Library Directories]
link_directories( ${PCL_LIBRARY_DIRS} )
# [Linker]>[Input]>[Additional Dependencies]
target_link_libraries( test ${PCL_LIBRARIES} )
endif()
그런 다음 CMake에서 프로젝트를 생성합니다. PCL 디렉토리 아래에 CMakeLists.txt 및 main.cpp가 있다고 가정합니다. 프로젝트의 출력처에는 반드시 다른 디렉토리를 지정하는 것!

사용할 Visual Studio 버전과 설치된 PCL에 따라 선택하십시오. Win64 (x64)와 무인 (x32)을 잘못하지 마라! (CMake의 버전에 따라서는 표시가 약간 다를지도)

오류가 발생하지 않을 때까지 Configure를 계속합니다.
왠지 의존 라이브러리의 VTK의 인스톨처(VTK_DIR)가 잃어버렸기 때문에, CMakeLists.txt로 직접 지정했습니다. VTKConfig.cmake 되는 파일의 위치를 지정하면 좋을 것 같습니다. All in One 인스톨러로 ***/PCL 1.8.1/3rdParty/VTK/
이하에 넣었으므로,
set(VTK_DIR "C:/hoge/PCL 1.8.1/3rdParty/VTK/lib/cmake/vtk-8.0" CACHE PATH "VTK directory override" FORCE)
그렇다면 좋을 것. 그러나 find_package에서 VTK 버전이 어때서 오류가 발생하여 죽었습니다. VTKConfig.cmake 들여다 보면 설치 위치가 문제 같다. CMake는 잘 모르기 때문에 VTK의 관련 파일 전부를 이동했다 (추기 : PCL 1.9.1에서도 역시 VTK_DIR의 직접 지정이 필요했지만, VTK 디렉토리의 이동은 불필요했다).
$ cp -r 'C:/hoge/PCL 1.8.1/3rdParty/VTK' 'C:/Program Files/VTK'
그리고는 복사처의 VTKConfig.cmake 의 장소를 가르쳐 줘,
set(VTK_DIR "C:/Program Files/VTK/lib/cmake/vtk-8.0" CACHE PATH "VTK directory override" FORCE)
무사히 에러를 해소.
마지막으로 Generate 하고 Open Project에서 열면 끝.
C++를 만나기 때문에 Visual Studio를 사용합니다. 참조하는 외부 파일이 대량으로 있으므로 직접 설정하는 것은 번거롭습니다. CMake를 사용합시다.
CMakeLists.txt 에 아래와 같이 기술해 main.cpp 를 포함한 프로젝트 "pcl_project"를 만듭니다. PCL을 포함하여 CMakeLists.txt의 편지지는 여기에서 가져 왔습니다.
cmake_minimum_required( VERSION 2.8 )
# Create Project
project( pcl_project )
add_executable( test main.cpp)
# Set StartUp Project (Option)
# (This setting is able to enable by using CMake 3.6.0 RC1 or later.)
set_property( DIRECTORY PROPERTY VS_STARTUP_PROJECT "test" )
# CMake 3.12 and above in order to suppress a lot of warnning
# cmake_policy(SET CMP0074 OLD)
# PCLConfing.cmake can not find VTK, so specify its location directly
# set(VTK_DIR "C:/Program Files/VTK/lib/cmake/vtk-8.0" CACHE PATH "VTK directory override" FORCE)
# Find Packages
find_package( PCL 1.8 REQUIRED )
if( PCL_FOUND )
# [C/C++]>[General]>[Additional Include Directories]
include_directories( ${PCL_INCLUDE_DIRS} )
# [C/C++]>[Preprocessor]>[Preprocessor Definitions]
add_definitions( ${PCL_DEFINITIONS} )
# For Use Not PreCompiled Features
add_definitions( -DPCL_NO_PRECOMPILE )
# [Linker]>[General]>[Additional Library Directories]
link_directories( ${PCL_LIBRARY_DIRS} )
# [Linker]>[Input]>[Additional Dependencies]
target_link_libraries( test ${PCL_LIBRARIES} )
endif()
그런 다음 CMake에서 프로젝트를 생성합니다. PCL 디렉토리 아래에 CMakeLists.txt 및 main.cpp가 있다고 가정합니다. 프로젝트의 출력처에는 반드시 다른 디렉토리를 지정하는 것!

사용할 Visual Studio 버전과 설치된 PCL에 따라 선택하십시오. Win64 (x64)와 무인 (x32)을 잘못하지 마라! (CMake의 버전에 따라서는 표시가 약간 다를지도)

오류가 발생하지 않을 때까지 Configure를 계속합니다.
왠지 의존 라이브러리의 VTK의 인스톨처(VTK_DIR)가 잃어버렸기 때문에, CMakeLists.txt로 직접 지정했습니다. VTKConfig.cmake 되는 파일의 위치를 지정하면 좋을 것 같습니다. All in One 인스톨러로
***/PCL 1.8.1/3rdParty/VTK/
이하에 넣었으므로,set(VTK_DIR "C:/hoge/PCL 1.8.1/3rdParty/VTK/lib/cmake/vtk-8.0" CACHE PATH "VTK directory override" FORCE)
그렇다면 좋을 것. 그러나 find_package에서 VTK 버전이 어때서 오류가 발생하여 죽었습니다. VTKConfig.cmake 들여다 보면 설치 위치가 문제 같다. CMake는 잘 모르기 때문에 VTK의 관련 파일 전부를 이동했다 (추기 : PCL 1.9.1에서도 역시 VTK_DIR의 직접 지정이 필요했지만, VTK 디렉토리의 이동은 불필요했다).
$ cp -r 'C:/hoge/PCL 1.8.1/3rdParty/VTK' 'C:/Program Files/VTK'
그리고는 복사처의 VTKConfig.cmake 의 장소를 가르쳐 줘,
set(VTK_DIR "C:/Program Files/VTK/lib/cmake/vtk-8.0" CACHE PATH "VTK directory override" FORCE)
무사히 에러를 해소.
마지막으로 Generate 하고 Open Project에서 열면 끝.
