Skip to content

Instantly share code, notes, and snippets.

@UnaNancyOwen
Last active August 1, 2024 06:56
Show Gist options
  • Save UnaNancyOwen/59319050d53c137ca8f3 to your computer and use it in GitHub Desktop.
Save UnaNancyOwen/59319050d53c137ca8f3 to your computer and use it in GitHub Desktop.
Building PCL with Visual Studio

Building PCL 1.10.0 with Visual Studio

Download

  1. PCLをGitからクローンする。(C:\PCL-1.10.0)
    https://github.com/PointCloudLibrary/pcl/tree/pcl-1.10.0

3rdParty

  1. 3rdPartyのライブラリをビルド、インストールする。

  2. 3rdPartyのライブラリの環境変数を設定する。

    • BOOST_ROOT C:\Program Files\Boost
    • EIGEN_ROOT C:\Program Files\Eigen3
    • FLANN_ROOT C:\Program Files\flann
    • QHULL_ROOT C:\Program Files\qfull
    • VTK_DIR C:\Program Files\VTK

CMake

  1. ソースコードの入力先とソリューションファイルの出力先を指定する。

    • Where is the source code: C:\PCL-1.10.0
    • Where is build the binaries: C:\PCL-1.10.0\build
  2. [Configure]を押してターゲットとなるVisual Studioを選択する。

  3. 各種設定を行う。
    (GroupedとAdvancedにチェックを入れるとわかりやすい。)
    Ungrouped Entries

    • EIGEN_INCLUDE_DIR C:\Program Files\Eigen3\include\eigen3
    • VTK_DIR C:\Program Files\VTK\lib\cmake\vtk-8.2

    BUILD

    • BUILD_2d ☑(check)
    • BUILD_CUDA ☐(uncheck)
    • BUILD_GPU ☐(uncheck)
    • BUILD_all_in_one_installer ☑(check)*1
    • BUILD_apps ☐(uncheck)
    • BUILD_common ☑(check)
    • BUILD_example ☐(uncheck)
    • BUILD_features ☑(check)
    • BUILD_filters ☑(check)
    • BUILD_geometry ☑(check)
    • BUILD_global_tests ☐(uncheck)
    • BUILD_io ☑(check)
    • BUILD_kdtree ☑(check)
    • BUILD_keypoints ☑(check)
    • BUILD_ml ☑(check)  
    • BUILD_octree ☑(check)
    • BUILD_outofcore ☑(check)
    • BUILD_people ☑(check)
    • BUILD_recognition ☑(check)
    • BUILD_registration ☑(check)
    • BUILD_sample_consensus ☑(check)
    • BUILD_search ☑(check)
    • BUILD_segmentation ☑(check)
    • BUILD_simulation ☐(uncheck)
    • BUILD_stereo ☑(check)
    • BUILD_surface ☑(check)
    • BUILD_surface_on_nurbs ☑(check)
    • BUILD_tools ☑(check)*2
    • BUILD_tracking ☑(check)
    • BUILD_visualization ☑(check)

    *1 INSTALLプロジェクトをビルドしたとき<CMAKE_INSTALL_PREFIX>(C:\Program Files\PCL)に指定したディレクトリにPCLと3rdPartyがコピーされる。
    *2 ビルドに時間がかかるため、各種ツール類(bin\pcl_*.exe)が必要でなければチェックを外す。

    Boost

    • Boost_ATOMIC_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_atomic-vc142-mt-gd-1_72.lib
    • Boost_ATOMIC_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_atomic-vc142-mt-1_72.lib
    • Boost_CHRONO_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_chrono-vc142-mt-gd-1_72.lib
    • Boost_CHRONO_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_chrono-vc142-mt-1_72.lib
    • Boost_DATE_TIME_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_date_time-vc142-mt-gd-1_72.lib
    • Boost_DATE_TIME_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_date_time-vc142-mt-1_72.lib
    • Boost_FILESYSTEM_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_filesystem-vc142-mt-gd-1_72.lib
    • Boost_FILESYSTEM_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_filesystem-vc142-mt-1_72.lib
    • Boost_INCLUDE_DIR C:\Program Files\Boost\include\boost-1_72
    • Boost_IOSTREAMS_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_iostreams-vc142-mt-gd-1_72.lib
    • Boost_IOSTREAMS_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_iostreams-vc142-mt-1_72.lib
    • Boost_LIBRARY_DIR_DEBUG C:\Program Files\Boost\lib
    • Boost_LIBRARY_DIR_RELEASE C:\Program Files\Boost\lib
    • Boost_MPI_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_mpi-vc142-mt-gd-1_72.lib
    • Boost_MPI_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_mpi-vc142-mt-1_72.lib
    • Boost_REGEX_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_regex-vc142-mt-gd-1_72.lib
    • Boost_REGEX_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_regex-vc142-mt-1_72.lib
    • Boost_SERIALIZATION_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_serialization-vc142-mt-gd-1_72.lib
    • Boost_SERIALIZATION_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_serialization-vc142-mt-1_72.lib
    • Boost_SYSTEM_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_system-vc142-mt-gd-1_72.lib
    • Boost_SYSTEM_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_system-vc142-mt-1_72.lib
    • Boost_THREAD_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_thread-vc142-mt-gd-1_72.lib
    • Boost_THREAD_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_thread-vc142-mt-1_72.lib

    CMAKE

    • CMAKE_CONFIGURATION_TYPES Debug;Release
    • CMAKE_INSTALL_PREFIX C:\Program Files\PCL

    FLANN

    • FLANN_INCLUDE_DIR C:\Program Files\flann\include
    • FLANN_LIBRARY C:\Program Files\flann\lib\flann_cpp_s.lib
    • FLANN_LIBRARY_DEBUG C:\Program Files\flann\lib\flann_cpp_s-gd.lib

    OPENNI2

    • OPENNI2_INCLUDE_DIRS C:\Program Files\OpenNI2\Include
    • OPENNI2_LIBRARY C:\Program Files\OpenNI2\Lib\OpenNI2

    QHULL

    • QHULL_INCLUDE_DIR C:\Program Files\qhull\include
    • QHULL_LIBRARY C:\Program Files\qhull\lib\qhullstatic.lib
    • QHULL_LIBRARY_DEBUG C:\Program Files\qhull\lib\qhullstatic_d.lib

    WITH

    • WITH_CUDA ☐(uncheck)
    • WITH_DAVIDSDK ☐(uncheck)
    • WITH_DOCS ☐(uncheck)
    • WITH_DSSDK ☐(uncheck)
    • WITH_ENSENSO ☐(uncheck)
    • WITH_FZAPI ☐(uncheck)
    • WITH_LIBUSB ☐(uncheck)
    • WITH_OPENGL ☑(check)
    • WITH_OPENNI ☐(uncheck)
    • WITH_OPENNI2 ☑(check)
    • WITH_PCAP ☐(uncheck)
    • WITH_PNG ☐(uncheck)
    • WITH_QHULL ☑(check)
    • WITH_QT ☐(uncheck)
    • WITH_RSSDK ☐(uncheck)
    • WITH_VTK ☑(check)
  4. 設定内容を確認する。

    • Boost version: 1.72.0
      Found the following Boost libraries:
      system
      filesystem
      thread
      date_time
      iostreams
      chrono
      atomic
      regex
    • Eigen found (include: C:/Program Files/Eigen/include/eigen3, version: 3.3.7)
    • FLANN found (include: C:/Program Files/flann/include, lib: optimized;C:/Program Files/flann/lib/flann_cpp_s.lib;debug;C:/Program Files/flann/lib/flann_cpp_s-gd.lib)
    • QHULL found (include: C:/Program Files/qhull/include, lib: optimized;C:/Program Files/qhull/lib/qhullstatic.lib;debug;C:/Program Files/qhull/lib/qhullstatic_d.lib)
    • VTK_MAJOR_VERSION 8, rendering backend: OpenGL
      VTK found (include: C:/Program Files/VTK/include/vtk-8.2, libs: vtkChartsCore;vtkCommonColor;vtkCommonCore;vtksys;vtkCommonDataModel;vtkCommonMath;vtkCommonMisc;vtkCommonSystem;vtkCommonTransforms;vtkCommonExecutionModel;vtkFiltersGeneral;vtkCommonComputationalGeometry;vtkFiltersCore;vtkInfovisCore;vtkFiltersExtraction;vtkFiltersStatistics;vtkImagingFourier;vtkImagingCore;vtkRenderingContext2D;vtkRenderingCore;vtkFiltersGeometry;vtkFiltersSources;vtkRenderingFreeType;vtkfreetype;vtkzlib;vtkFiltersModeling;vtkImagingSources;vtkInteractionStyle;vtkInteractionWidgets;vtkFiltersHybrid;vtkImagingColor;vtkImagingGeneral;vtkImagingHybrid;vtkIOImage;vtkDICOMParser;vtkmetaio;vtkjpeg;vtkpng;vtktiff;vtkRenderingAnnotation;vtkRenderingVolume;vtkIOXML;vtkIOCore;vtkdoubleconversion;vtklz4;vtklzma;vtkIOXMLParser;vtkexpat;vtkIOGeometry;vtkIOLegacy;vtkIOPLY;vtkRenderingLOD;vtkViewsContext2D;vtkViewsCore;vtkRenderingContextOpenGL2;vtkRenderingOpenGL2;vtkglew
    • OpenNI 2 found (include: C:/Program Files/OpenNI2/Include, lib: C:/Program Files/OpenNI2/Lib/OpenNI2.lib, redist: C:\Program Files\OpenNI2\Redist)
  5. [Generate]を押してソリューションファイルを出力する。

Build

  1. Visual Studioを管理者権限で起動してPCLのソリューションファイル(C:\PCL-1.10.0\build\PCL.sln)を開く。
    (Visual Studioを管理者権限で起動しないとINSTALLが失敗する。)

  2. PCLをビルドする。(ALL_BUILD)

    1. ソリューションの構成(Debug, Release)を設定する。
    2. ソリューションエクスプローラーからALL_BUILDプロジェクトを選択する。
    3. [ビルド]>[ソリューションのビルド]を押してPCLをビルドする。
  3. PCLをインストールする。(INSTALL)

    1. ソリューションエクスプローラーからINSTALLプロジェクトを選択する。
    2. [ビルド]>[プロジェクトのみ]>[INSTALLのみをビルド]を押してPCLをインストールする。
      CMAKE_INSTALL_PREFIXで指定した出力先へ必要なファイルがコピーされる。

Environment Variable

  1. 環境変数PCL_ROOTを作成してPCLのパス(C:\Program Files\PCL)を設定する。

  2. 環境変数PathにPCLと3rdPartyのパスを追加する。

    • ;%PCL_ROOT%\bin
    • ;%PCL_ROOT%\3rdPrty\VTK\bin
    • ;%OPENNI2_REDIST64%

Building PCL 1.10.1 with Visual Studio

Download

  1. PCLをGitからクローンする。(C:\PCL-1.10.1)
    https://github.com/PointCloudLibrary/pcl/tree/pcl-1.10.1

3rdParty

  1. 3rdPartyのライブラリをビルド、インストールする。

  2. 3rdPartyのライブラリの環境変数を設定する。

    • BOOST_ROOT C:\Program Files\Boost
    • EIGEN_ROOT C:\Program Files\Eigen3
    • FLANN_ROOT C:\Program Files\flann
    • QHULL_ROOT C:\Program Files\qfull
    • VTK_DIR C:\Program Files\VTK

CMake

  1. ソースコードの入力先とソリューションファイルの出力先を指定する。

    • Where is the source code: C:\PCL-1.10.1
    • Where is build the binaries: C:\PCL-1.10.1\build
  2. [Configure]を押してターゲットとなるVisual Studioを選択する。

  3. 各種設定を行う。
    (GroupedとAdvancedにチェックを入れるとわかりやすい。)
    Ungrouped Entries

    • EIGEN_INCLUDE_DIR C:\Program Files\Eigen3\include\eigen3
    • VTK_DIR C:\Program Files\VTK\lib\cmake\vtk-8.2

    BUILD

    • BUILD_2d ☑(check)
    • BUILD_CUDA ☐(uncheck)
    • BUILD_GPU ☐(uncheck)
    • BUILD_all_in_one_installer ☑(check)*1
    • BUILD_apps ☐(uncheck)
    • BUILD_common ☑(check)
    • BUILD_example ☐(uncheck)
    • BUILD_features ☑(check)
    • BUILD_filters ☑(check)
    • BUILD_geometry ☑(check)
    • BUILD_global_tests ☐(uncheck)
    • BUILD_io ☑(check)
    • BUILD_kdtree ☑(check)
    • BUILD_keypoints ☑(check)
    • BUILD_ml ☑(check)  
    • BUILD_octree ☑(check)
    • BUILD_outofcore ☑(check)
    • BUILD_people ☑(check)
    • BUILD_recognition ☑(check)
    • BUILD_registration ☑(check)
    • BUILD_sample_consensus ☑(check)
    • BUILD_search ☑(check)
    • BUILD_segmentation ☑(check)
    • BUILD_simulation ☐(uncheck)
    • BUILD_stereo ☑(check)
    • BUILD_surface ☑(check)
    • BUILD_surface_on_nurbs ☑(check)
    • BUILD_tools ☑(check)*2
    • BUILD_tracking ☑(check)
    • BUILD_visualization ☑(check)

    *1 INSTALLプロジェクトをビルドしたとき<CMAKE_INSTALL_PREFIX>(C:\Program Files\PCL)に指定したディレクトリにPCLと3rdPartyがコピーされる。
    *2 ビルドに時間がかかるため、各種ツール類(bin\pcl_*.exe)が必要でなければチェックを外す。

    Boost

    • Boost_ATOMIC_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_atomic-vc142-mt-gd-1_72.lib
    • Boost_ATOMIC_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_atomic-vc142-mt-1_72.lib
    • Boost_CHRONO_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_chrono-vc142-mt-gd-1_72.lib
    • Boost_CHRONO_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_chrono-vc142-mt-1_72.lib
    • Boost_DATE_TIME_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_date_time-vc142-mt-gd-1_72.lib
    • Boost_DATE_TIME_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_date_time-vc142-mt-1_72.lib
    • Boost_FILESYSTEM_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_filesystem-vc142-mt-gd-1_72.lib
    • Boost_FILESYSTEM_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_filesystem-vc142-mt-1_72.lib
    • Boost_INCLUDE_DIR C:\Program Files\Boost\include\boost-1_72
    • Boost_IOSTREAMS_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_iostreams-vc142-mt-gd-1_72.lib
    • Boost_IOSTREAMS_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_iostreams-vc142-mt-1_72.lib
    • Boost_LIBRARY_DIR_DEBUG C:\Program Files\Boost\lib
    • Boost_LIBRARY_DIR_RELEASE C:\Program Files\Boost\lib
    • Boost_MPI_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_mpi-vc142-mt-gd-1_72.lib
    • Boost_MPI_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_mpi-vc142-mt-1_72.lib
    • Boost_REGEX_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_regex-vc142-mt-gd-1_72.lib
    • Boost_REGEX_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_regex-vc142-mt-1_72.lib
    • Boost_SERIALIZATION_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_serialization-vc142-mt-gd-1_72.lib
    • Boost_SERIALIZATION_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_serialization-vc142-mt-1_72.lib
    • Boost_SYSTEM_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_system-vc142-mt-gd-1_72.lib
    • Boost_SYSTEM_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_system-vc142-mt-1_72.lib
    • Boost_THREAD_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_thread-vc142-mt-gd-1_72.lib
    • Boost_THREAD_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_thread-vc142-mt-1_72.lib

    CMAKE

    • CMAKE_CONFIGURATION_TYPES Debug;Release
    • CMAKE_INSTALL_PREFIX C:\Program Files\PCL

    FLANN

    • FLANN_INCLUDE_DIR C:\Program Files\flann\include
    • FLANN_LIBRARY C:\Program Files\flann\lib\flann_cpp_s.lib
    • FLANN_LIBRARY_DEBUG C:\Program Files\flann\lib\flann_cpp_s-gd.lib

    OPENNI2

    • OPENNI2_INCLUDE_DIRS C:\Program Files\OpenNI2\Include
    • OPENNI2_LIBRARY C:\Program Files\OpenNI2\Lib\OpenNI2

    QHULL

    • QHULL_INCLUDE_DIR C:\Program Files\qhull\include
    • QHULL_LIBRARY C:\Program Files\qhull\lib\qhullstatic.lib
    • QHULL_LIBRARY_DEBUG C:\Program Files\qhull\lib\qhullstatic_d.lib

    WITH

    • WITH_CUDA ☐(uncheck)
    • WITH_DAVIDSDK ☐(uncheck)
    • WITH_DOCS ☐(uncheck)
    • WITH_DSSDK ☐(uncheck)
    • WITH_ENSENSO ☐(uncheck)
    • WITH_FZAPI ☐(uncheck)
    • WITH_LIBUSB ☐(uncheck)
    • WITH_OPENGL ☑(check)
    • WITH_OPENNI ☐(uncheck)
    • WITH_OPENNI2 ☑(check)
    • WITH_PCAP ☐(uncheck)
    • WITH_PNG ☐(uncheck)
    • WITH_QHULL ☑(check)
    • WITH_QT ☐(uncheck)
    • WITH_RSSDK ☐(uncheck)
    • WITH_VTK ☑(check)
  4. 設定内容を確認する。

    • Boost version: 1.72.0
      Found the following Boost libraries:
      system
      filesystem
      thread
      date_time
      iostreams
      chrono
      atomic
      regex
    • Eigen found (include: C:/Program Files/Eigen/include/eigen3, version: 3.3.7)
    • FLANN found (include: C:/Program Files/flann/include, lib: optimized;C:/Program Files/flann/lib/flann_cpp_s.lib;debug;C:/Program Files/flann/lib/flann_cpp_s-gd.lib)
    • QHULL found (include: C:/Program Files/qhull/include, lib: optimized;C:/Program Files/qhull/lib/qhullstatic.lib;debug;C:/Program Files/qhull/lib/qhullstatic_d.lib)
    • VTK_MAJOR_VERSION 8, rendering backend: OpenGL
      VTK found (include: C:/Program Files/VTK/include/vtk-8.2, libs: vtkChartsCore;vtkCommonColor;vtkCommonCore;vtksys;vtkCommonDataModel;vtkCommonMath;vtkCommonMisc;vtkCommonSystem;vtkCommonTransforms;vtkCommonExecutionModel;vtkFiltersGeneral;vtkCommonComputationalGeometry;vtkFiltersCore;vtkInfovisCore;vtkFiltersExtraction;vtkFiltersStatistics;vtkImagingFourier;vtkImagingCore;vtkRenderingContext2D;vtkRenderingCore;vtkFiltersGeometry;vtkFiltersSources;vtkRenderingFreeType;vtkfreetype;vtkzlib;vtkFiltersModeling;vtkImagingSources;vtkInteractionStyle;vtkInteractionWidgets;vtkFiltersHybrid;vtkImagingColor;vtkImagingGeneral;vtkImagingHybrid;vtkIOImage;vtkDICOMParser;vtkmetaio;vtkjpeg;vtkpng;vtktiff;vtkRenderingAnnotation;vtkRenderingVolume;vtkIOXML;vtkIOCore;vtkdoubleconversion;vtklz4;vtklzma;vtkIOXMLParser;vtkexpat;vtkIOGeometry;vtkIOLegacy;vtkIOPLY;vtkRenderingLOD;vtkViewsContext2D;vtkViewsCore;vtkRenderingContextOpenGL2;vtkRenderingOpenGL2;vtkglew
    • OpenNI 2 found (include: C:/Program Files/OpenNI2/Include, lib: C:/Program Files/OpenNI2/Lib/OpenNI2.lib, redist: C:\Program Files\OpenNI2\Redist)
  5. [Generate]を押してソリューションファイルを出力する。

Build

  1. Visual Studioを管理者権限で起動してPCLのソリューションファイル(C:\PCL-1.10.1\build\PCL.sln)を開く。
    (Visual Studioを管理者権限で起動しないとINSTALLが失敗する。)

  2. PCLをビルドする。(ALL_BUILD)

    1. ソリューションの構成(Debug, Release)を設定する。
    2. ソリューションエクスプローラーからALL_BUILDプロジェクトを選択する。
    3. [ビルド]>[ソリューションのビルド]を押してPCLをビルドする。
  3. PCLをインストールする。(INSTALL)

    1. ソリューションエクスプローラーからINSTALLプロジェクトを選択する。
    2. [ビルド]>[プロジェクトのみ]>[INSTALLのみをビルド]を押してPCLをインストールする。
      CMAKE_INSTALL_PREFIXで指定した出力先へ必要なファイルがコピーされる。

Environment Variable

  1. 環境変数PCL_ROOTを作成してPCLのパス(C:\Program Files\PCL)を設定する。

  2. 環境変数PathにPCLと3rdPartyのパスを追加する。

    • ;%PCL_ROOT%\bin
    • ;%PCL_ROOT%\3rdPrty\VTK\bin
    • ;%OPENNI2_REDIST64%

Building PCL 1.11.0 with Visual Studio

Download

  1. PCLをGitからクローンする。(C:\PCL-1.11.0)
    https://github.com/PointCloudLibrary/pcl/tree/pcl-1.11.0

  2. 以下のコミットの修正をマージする。
    PointCloudLibrary/pcl#4080 PointCloudLibrary/pcl#4093

  3. #4082の一時対応ために以下の修正をします。

    - PCL_ADD_EXECUTABLE(pcl_train_linemod_template COMPONENT ${SUBSYS_NAME} SOURCES train_linemod_template.cpp)
    - target_link_libraries(pcl_train_linemod_template pcl_common pcl_io pcl_segmentation pcl_recognition)
    - 
    - PCL_ADD_EXECUTABLE(pcl_match_linemod_template COMPONENT ${SUBSYS_NAME} SOURCES match_linemod_template.cpp)
    - target_link_libraries(pcl_match_linemod_template pcl_common pcl_io pcl_recognition)
    - 
    - PCL_ADD_EXECUTABLE(pcl_linemod_detection COMPONENT ${SUBSYS_NAME} SOURCES linemod_detection.cpp)
    - target_link_libraries(pcl_linemod_detection pcl_common pcl_io pcl_recognition)

3rdParty

  1. 3rdPartyのライブラリをビルド、インストールする。

  2. 3rdPartyのライブラリの環境変数を設定する。

    • BOOST_ROOT C:\Program Files\Boost
    • EIGEN_ROOT C:\Program Files\Eigen3
    • FLANN_ROOT C:\Program Files\flann
    • QHULL_ROOT C:\Program Files\qfull
    • VTK_DIR C:\Program Files\VTK

CMake

  1. ソースコードの入力先とソリューションファイルの出力先を指定する。

    • Where is the source code: C:\PCL-1.11.0
    • Where is build the binaries: C:\PCL-1.11.0\build
  2. [Configure]を押してターゲットとなるVisual Studioを選択する。

  3. 各種設定を行う。
    (GroupedとAdvancedにチェックを入れるとわかりやすい。)
    Ungrouped Entries

    • EIGEN_INCLUDE_DIR C:\Program Files\Eigen3\include\eigen3
    • VTK_DIR C:\Program Files\VTK\lib\cmake\vtk-8.2

    BUILD

    • BUILD_2d ☑(check)
    • BUILD_CUDA ☐(uncheck)
    • BUILD_GPU ☐(uncheck)
    • BUILD_all_in_one_installer ☑(check)*1
    • BUILD_apps ☐(uncheck)
    • BUILD_common ☑(check)
    • BUILD_example ☐(uncheck)
    • BUILD_features ☑(check)
    • BUILD_filters ☑(check)
    • BUILD_geometry ☑(check)
    • BUILD_global_tests ☐(uncheck)
    • BUILD_io ☑(check)
    • BUILD_kdtree ☑(check)
    • BUILD_keypoints ☑(check)
    • BUILD_ml ☑(check)  
    • BUILD_octree ☑(check)
    • BUILD_outofcore ☑(check)
    • BUILD_people ☑(check)
    • BUILD_recognition ☑(check)
    • BUILD_registration ☑(check)
    • BUILD_sample_consensus ☑(check)
    • BUILD_search ☑(check)
    • BUILD_segmentation ☑(check)
    • BUILD_simulation ☐(uncheck)
    • BUILD_stereo ☑(check)
    • BUILD_surface ☑(check)
    • BUILD_surface_on_nurbs ☑(check)
    • BUILD_tools ☑(check)*2
    • BUILD_tracking ☑(check)
    • BUILD_visualization ☑(check)

    *1 INSTALLプロジェクトをビルドしたとき<CMAKE_INSTALL_PREFIX>(C:\Program Files\PCL)に指定したディレクトリにPCLと3rdPartyがコピーされる。
    *2 ビルドに時間がかかるため、各種ツール類(bin\pcl_*.exe)が必要でなければチェックを外す。

    Boost

    • Boost_DATE_TIME_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_date_time-vc142-mt-gd-1_73.lib
    • Boost_DATE_TIME_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_date_time-vc142-mt-1_73.lib
    • Boost_FILESYSTEM_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_filesystem-vc142-mt-gd-1_73.lib
    • Boost_FILESYSTEM_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_filesystem-vc142-mt-1_73.lib
    • Boost_INCLUDE_DIR C:\Program Files\Boost\include\boost-1_73
    • Boost_IOSTREAMS_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_iostreams-vc142-mt-gd-1_73.lib
    • Boost_IOSTREAMS_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_iostreams-vc142-mt-1_73.lib
    • Boost_LIBRARY_DIR_DEBUG C:\Program Files\Boost\lib
    • Boost_LIBRARY_DIR_RELEASE C:\Program Files\Boost\lib
    • Boost_MPI_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_mpi-vc142-mt-gd-1_73.lib
    • Boost_MPI_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_mpi-vc142-mt-1_73.lib
    • Boost_REGEX_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_regex-vc142-mt-gd-1_73.lib
    • Boost_REGEX_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_regex-vc142-mt-1_73.lib
    • Boost_SERIALIZATION_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_serialization-vc142-mt-gd-1_73.lib
    • Boost_SERIALIZATION_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_serialization-vc142-mt-1_73.lib
    • Boost_SYSTEM_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_system-vc142-mt-gd-1_73.lib
    • Boost_SYSTEM_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_system-vc142-mt-1_73.lib

    CMAKE

    • CMAKE_CONFIGURATION_TYPES Debug;Release
    • CMAKE_INSTALL_PREFIX C:\Program Files\PCL

    FLANN

    • FLANN_INCLUDE_DIR C:\Program Files\flann\include
    • FLANN_LIBRARY C:\Program Files\flann\lib\flann_cpp_s.lib
    • FLANN_LIBRARY_DEBUG C:\Program Files\flann\lib\flann_cpp_s-gd.lib

    OPENNI2

    • OPENNI2_INCLUDE_DIRS C:\Program Files\OpenNI2\Include
    • OPENNI2_LIBRARY C:\Program Files\OpenNI2\Lib\OpenNI2

    QHULL

    • QHULL_INCLUDE_DIR C:\Program Files\qhull\include
    • QHULL_LIBRARY C:\Program Files\qhull\lib\qhullstatic.lib
    • QHULL_LIBRARY_DEBUG C:\Program Files\qhull\lib\qhullstatic_d.lib

    WITH

    • WITH_CUDA ☐(uncheck)
    • WITH_DAVIDSDK ☐(uncheck)
    • WITH_DOCS ☐(uncheck)
    • WITH_DSSDK ☐(uncheck)
    • WITH_ENSENSO ☐(uncheck)
    • WITH_LIBUSB ☐(uncheck)
    • WITH_OPENGL ☑(check)
    • WITH_OPENNI ☐(uncheck)
    • WITH_OPENNI2 ☑(check)
    • WITH_PCAP ☐(uncheck)
    • WITH_PNG ☐(uncheck)
    • WITH_QHULL ☑(check)
    • WITH_QT ☐(uncheck)
    • WITH_RSSDK ☐(uncheck)
    • WITH_RSSDK2 ☐(uncheck)
    • WITH_VTK ☑(check)
  4. 設定内容を確認する。

    • Eigen found (include: C:/Program Files/Eigen/include/eigen3, version: 3.3.7)
    • QHULL found (include: C:/Program Files/qhull/include, lib: optimized;C:/Program Files/qhull/lib/qhullstatic.lib;debug;C:/Program Files/qhull/lib/qhullstatic_d.lib)
    • VTK_MAJOR_VERSION 8, rendering backend: OpenGL2
      VTK found (include: C:/Program Files/VTK/include/vtk-8.2, libs: vtkChartsCore;vtkCommonColor;vtkCommonCore;vtksys;vtkCommonDataModel;vtkCommonMath;vtkCommonMisc;vtkCommonSystem;vtkCommonTransforms;vtkCommonExecutionModel;vtkFiltersGeneral;vtkCommonComputationalGeometry;vtkFiltersCore;vtkInfovisCore;vtkFiltersExtraction;vtkFiltersStatistics;vtkImagingFourier;vtkImagingCore;vtkRenderingContext2D;vtkRenderingCore;vtkFiltersGeometry;vtkFiltersSources;vtkRenderingFreeType;vtkfreetype;vtkzlib;vtkFiltersModeling;vtkImagingSources;vtkInteractionStyle;vtkInteractionWidgets;vtkFiltersHybrid;vtkImagingColor;vtkImagingGeneral;vtkImagingHybrid;vtkIOImage;vtkDICOMParser;vtkmetaio;vtkjpeg;vtkpng;vtktiff;vtkRenderingAnnotation;vtkRenderingVolume;vtkIOXML;vtkIOCore;vtkdoubleconversion;vtklz4;vtklzma;vtkIOXMLParser;vtkexpat;vtkIOGeometry;vtkIOLegacy;vtkIOPLY;vtkRenderingLOD;vtkViewsContext2D;vtkViewsCore;vtkRenderingContextOpenGL2;vtkRenderingOpenGL2;vtkglew
    • OpenNI 2 found (include: C:/Program Files/OpenNI2/Include, lib: C:/Program Files/OpenNI2/Lib/OpenNI2.lib, redist: C:\Program Files\OpenNI2\Redist)
  5. [Generate]を押してソリューションファイルを出力する。

Build

  1. Visual Studioを管理者権限で起動してPCLのソリューションファイル(C:\PCL-1.11.0\build\PCL.sln)を開く。
    (Visual Studioを管理者権限で起動しないとINSTALLが失敗する。)

  2. PCLをビルドする。(ALL_BUILD)

    1. ソリューションの構成(Debug, Release)を設定する。
    2. ソリューションエクスプローラーからALL_BUILDプロジェクトを選択する。
    3. [ビルド]>[ソリューションのビルド]を押してPCLをビルドする。
  3. PCLをインストールする。(INSTALL)

    1. ソリューションエクスプローラーからINSTALLプロジェクトを選択する。
    2. [ビルド]>[プロジェクトのみ]>[INSTALLのみをビルド]を押してPCLをインストールする。
      CMAKE_INSTALL_PREFIXで指定した出力先へ必要なファイルがコピーされる。

Environment Variable

  1. 環境変数PCL_ROOTを作成してPCLのパス(C:\Program Files\PCL)を設定する。

  2. 環境変数PathにPCLと3rdPartyのパスを追加する。

    • ;%PCL_ROOT%\bin
    • ;%PCL_ROOT%\3rdPrty\VTK\bin
    • ;%OPENNI2_REDIST64%

Building PCL 1.11.1 with Visual Studio

Download

  1. PCLをGitからクローンする。(C:\PCL-1.11.1)
    https://github.com/PointCloudLibrary/pcl/tree/pcl-1.11.1

  2. 以下のコミットの修正をマージする。
    PointCloudLibrary/pcl#4330

3rdParty

  1. 3rdPartyのライブラリをビルド、インストールする。

  2. 3rdPartyのライブラリの環境変数を設定する。

    • BOOST_ROOT C:\Program Files\Boost
    • EIGEN_ROOT C:\Program Files\Eigen3
    • FLANN_ROOT C:\Program Files\flann
    • QHULL_ROOT C:\Program Files\qfull
    • VTK_DIR C:\Program Files\VTK

CMake

  1. ソースコードの入力先とソリューションファイルの出力先を指定する。

    • Where is the source code: C:\PCL-1.11.0
    • Where is build the binaries: C:\PCL-1.11.0\build
  2. [Configure]を押してターゲットとなるVisual Studioを選択する。

  3. 各種設定を行う。
    (GroupedとAdvancedにチェックを入れるとわかりやすい。)
    Ungrouped Entries

    • EIGEN_INCLUDE_DIR C:\Program Files\Eigen3\include\eigen3
    • VTK_DIR C:\Program Files\VTK\lib\cmake\vtk-8.2

    BUILD

    • BUILD_2d ☑(check)
    • BUILD_CUDA ☐(uncheck)
    • BUILD_GPU ☐(uncheck)
    • BUILD_all_in_one_installer ☑(check)*1
    • BUILD_apps ☐(uncheck)
    • BUILD_common ☑(check)
    • BUILD_example ☐(uncheck)
    • BUILD_features ☑(check)
    • BUILD_filters ☑(check)
    • BUILD_geometry ☑(check)
    • BUILD_global_tests ☐(uncheck)
    • BUILD_io ☑(check)
    • BUILD_kdtree ☑(check)
    • BUILD_keypoints ☑(check)
    • BUILD_ml ☑(check)  
    • BUILD_octree ☑(check)
    • BUILD_outofcore ☑(check)
    • BUILD_people ☑(check)
    • BUILD_recognition ☑(check)
    • BUILD_registration ☑(check)
    • BUILD_sample_consensus ☑(check)
    • BUILD_search ☑(check)
    • BUILD_segmentation ☑(check)
    • BUILD_simulation ☐(uncheck)
    • BUILD_stereo ☑(check)
    • BUILD_surface ☑(check)
    • BUILD_surface_on_nurbs ☑(check)
    • BUILD_tools ☑(check)*2
    • BUILD_tracking ☑(check)
    • BUILD_visualization ☑(check)

    *1 INSTALLプロジェクトをビルドしたとき<CMAKE_INSTALL_PREFIX>(C:\Program Files\PCL)に指定したディレクトリにPCLと3rdPartyがコピーされる。
    *2 ビルドに時間がかかるため、各種ツール類(bin\pcl_*.exe)が必要でなければチェックを外す。

    Boost

    • Boost_DATE_TIME_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_date_time-vc142-mt-gd-1_74.lib
    • Boost_DATE_TIME_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_date_time-vc142-mt-1_74.lib
    • Boost_FILESYSTEM_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_filesystem-vc142-mt-gd-1_74.lib
    • Boost_FILESYSTEM_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_filesystem-vc142-mt-1_74.lib
    • Boost_INCLUDE_DIR C:\Program Files\Boost\include\boost-1_74
    • Boost_IOSTREAMS_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_iostreams-vc142-mt-gd-1_74.lib
    • Boost_IOSTREAMS_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_iostreams-vc142-mt-1_74.lib
    • Boost_LIBRARY_DIR_DEBUG C:\Program Files\Boost\lib
    • Boost_LIBRARY_DIR_RELEASE C:\Program Files\Boost\lib
    • Boost_MPI_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_mpi-vc142-mt-gd-1_74.lib
    • Boost_MPI_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_mpi-vc142-mt-1_74.lib
    • Boost_REGEX_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_regex-vc142-mt-gd-1_74.lib
    • Boost_REGEX_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_regex-vc142-mt-1_74.lib
    • Boost_SERIALIZATION_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_serialization-vc142-mt-gd-1_74.lib
    • Boost_SERIALIZATION_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_serialization-vc142-mt-1_74.lib
    • Boost_SYSTEM_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_system-vc142-mt-gd-1_74.lib
    • Boost_SYSTEM_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_system-vc142-mt-1_74.lib
    • Boost_SYSTEM_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_system-vc142-mt-1_74.lib

    CMAKE

    • CMAKE_CONFIGURATION_TYPES Debug;Release
    • CMAKE_INSTALL_PREFIX C:\Program Files\PCL

    FLANN

    • FLANN_INCLUDE_DIR C:\Program Files\flann\include
    • FLANN_LIBRARY C:\Program Files\flann\lib\flann_cpp_s.lib
    • FLANN_LIBRARY_DEBUG C:\Program Files\flann\lib\flann_cpp_s-gd.lib

    OPENNI2

    • OPENNI2_INCLUDE_DIRS C:\Program Files\OpenNI2\Include
    • OPENNI2_LIBRARY C:\Program Files\OpenNI2\Lib\OpenNI2

    QHULL

    • QHULL_INCLUDE_DIR C:\Program Files\qhull\include
    • QHULL_LIBRARY C:\Program Files\qhull\lib\qhullstatic.lib
    • QHULL_LIBRARY_DEBUG C:\Program Files\qhull\lib\qhullstatic_d.lib

    WITH

    • WITH_CUDA ☐(uncheck)
    • WITH_DAVIDSDK ☐(uncheck)
    • WITH_DOCS ☐(uncheck)
    • WITH_DSSDK ☐(uncheck)
    • WITH_ENSENSO ☐(uncheck)
    • WITH_LIBUSB ☐(uncheck)
    • WITH_OPENGL ☑(check)
    • WITH_OPENMP ☑(check)
    • WITH_OPENNI ☐(uncheck)
    • WITH_OPENNI2 ☑(check)
    • WITH_PCAP ☐(uncheck)
    • WITH_PNG ☐(uncheck)
    • WITH_QHULL ☑(check)
    • WITH_QT ☐(uncheck)
    • WITH_RSSDK ☐(uncheck)
    • WITH_RSSDK2 ☐(uncheck)
    • WITH_VTK ☑(check)
  4. 設定内容を確認する。

    • Eigen found (include: C:/Program Files/Eigen/include/eigen3, version: 3.3.7)
    • QHULL found (include: C:/Program Files/qhull/include, lib: optimized;C:/Program Files/qhull/lib/qhullstatic.lib;debug;C:/Program Files/qhull/lib/qhullstatic_d.lib)
    • VTK_MAJOR_VERSION 8, rendering backend: OpenGL2
      VTK found (include: C:/Program Files/VTK/include/vtk-8.2, libs: vtkChartsCore;vtkCommonColor;vtkCommonCore;vtksys;vtkCommonDataModel;vtkCommonMath;vtkCommonMisc;vtkCommonSystem;vtkCommonTransforms;vtkCommonExecutionModel;vtkFiltersGeneral;vtkCommonComputationalGeometry;vtkFiltersCore;vtkInfovisCore;vtkFiltersExtraction;vtkFiltersStatistics;vtkImagingFourier;vtkImagingCore;vtkRenderingContext2D;vtkRenderingCore;vtkFiltersGeometry;vtkFiltersSources;vtkRenderingFreeType;vtkfreetype;vtkzlib;vtkFiltersModeling;vtkImagingSources;vtkInteractionStyle;vtkInteractionWidgets;vtkFiltersHybrid;vtkImagingColor;vtkImagingGeneral;vtkImagingHybrid;vtkIOImage;vtkDICOMParser;vtkmetaio;vtkjpeg;vtkpng;vtktiff;vtkRenderingAnnotation;vtkRenderingVolume;vtkIOXML;vtkIOCore;vtkdoubleconversion;vtklz4;vtklzma;vtkIOXMLParser;vtkexpat;vtkIOGeometry;vtkIOLegacy;vtkIOPLY;vtkRenderingLOD;vtkViewsContext2D;vtkViewsCore;vtkRenderingContextOpenGL2;vtkRenderingOpenGL2;vtkglew
    • OpenNI 2 found (include: C:/Program Files/OpenNI2/Include, lib: C:/Program Files/OpenNI2/Lib/OpenNI2.lib, redist: C:\Program Files\OpenNI2\Redist)
  5. [Generate]を押してソリューションファイルを出力する。

Build

  1. Visual Studioを管理者権限で起動してPCLのソリューションファイル(C:\PCL-1.11.1\build\PCL.sln)を開く。
    (Visual Studioを管理者権限で起動しないとINSTALLが失敗する。)

  2. PCLをビルドする。(ALL_BUILD)

    1. ソリューションの構成(Debug, Release)を設定する。
    2. ソリューションエクスプローラーからALL_BUILDプロジェクトを選択する。
    3. [ビルド]>[ソリューションのビルド]を押してPCLをビルドする。
  3. PCLをインストールする。(INSTALL)

    1. ソリューションエクスプローラーからINSTALLプロジェクトを選択する。
    2. [ビルド]>[プロジェクトのみ]>[INSTALLのみをビルド]を押してPCLをインストールする。
      CMAKE_INSTALL_PREFIXで指定した出力先へ必要なファイルがコピーされる。

Environment Variable

  1. 環境変数PCL_ROOTを作成してPCLのパス(C:\Program Files\PCL)を設定する。

  2. 環境変数PathにPCLと3rdPartyのパスを追加する。

    • ;%PCL_ROOT%\bin
    • ;%PCL_ROOT%\3rdPrty\VTK\bin
    • ;%OPENNI2_REDIST64%

Building PCL 1.12.0 with Visual Studio

Download

  1. PCLをGitからクローンする。(C:\PCL-1.12.0)
    https://github.com/PointCloudLibrary/pcl/releases/tag/pcl-1.12.0

3rdParty

  1. 3rdPartyのライブラリをビルド、インストールする。

  2. 3rdPartyのライブラリの環境変数を設定する。

    • BOOST_ROOT C:\Program Files\Boost
    • EIGEN_ROOT C:\Program Files\Eigen3
    • FLANN_ROOT C:\Program Files\flann
    • QHULL_ROOT C:\Program Files\qfull
    • VTK_DIR C:\Program Files\VTK

CMake

  1. ソースコードの入力先とソリューションファイルの出力先を指定する。

    • Where is the source code: C:\PCL-1.12.0
    • Where is build the binaries: C:\PCL-1.12.0\build
  2. [Configure]を押してターゲットとなるVisual Studioを選択する。

  3. 各種設定を行う。
    (GroupedとAdvancedにチェックを入れるとわかりやすい。)
    Ungrouped Entries

    • EIGEN_INCLUDE_DIR C:\Program Files\Eigen3\include\eigen3
    • VTK_DIR C:\Program Files\VTK\lib\cmake\vtk-9.0

    BUILD

    • BUILD_2d ☑(check)
    • BUILD_CUDA ☐(uncheck)
    • BUILD_GPU ☐(uncheck)
    • BUILD_all_in_one_installer ☑(check)*1
    • BUILD_apps ☐(uncheck)
    • BUILD_common ☑(check)
    • BUILD_example ☐(uncheck)
    • BUILD_features ☑(check)
    • BUILD_filters ☑(check)
    • BUILD_geometry ☑(check)
    • BUILD_global_tests ☐(uncheck)
    • BUILD_io ☑(check)
    • BUILD_kdtree ☑(check)
    • BUILD_keypoints ☑(check)
    • BUILD_ml ☑(check)  
    • BUILD_octree ☑(check)
    • BUILD_outofcore ☑(check)
    • BUILD_people ☑(check)
    • BUILD_recognition ☑(check)
    • BUILD_registration ☑(check)
    • BUILD_sample_consensus ☑(check)
    • BUILD_search ☑(check)
    • BUILD_segmentation ☑(check)
    • BUILD_simulation ☐(uncheck)
    • BUILD_stereo ☑(check)
    • BUILD_surface ☑(check)
    • BUILD_surface_on_nurbs ☑(check)
    • BUILD_tools ☑(check)*2
    • BUILD_tracking ☑(check)
    • BUILD_visualization ☑(check)

    *1 INSTALLプロジェクトをビルドしたとき<CMAKE_INSTALL_PREFIX>(C:\Program Files\PCL)に指定したディレクトリにPCLと3rdPartyがコピーされる。
    *2 ビルドに時間がかかるため、各種ツール類(bin\pcl_*.exe)が必要でなければチェックを外す。

    Boost

    • Boost_DATE_TIME_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_date_time-vc142-mt-gd-x64-1_76.lib
    • Boost_DATE_TIME_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_date_time-vc142-mt-x64-1_76.lib
    • Boost_FILESYSTEM_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_filesystem-vc142-mt-gd-x64-1_76.lib
    • Boost_FILESYSTEM_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_filesystem-vc142-mt-x64-1_76.lib
    • Boost_INCLUDE_DIR C:\Program Files\Boost\include\boost-x64-1_76
    • Boost_IOSTREAMS_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_iostreams-vc142-mt-gd-x64-1_76.lib
    • Boost_IOSTREAMS_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_iostreams-vc142-mt-x64-1_76.lib
    • Boost_LIBRARY_DIR_DEBUG C:\Program Files\Boost\lib
    • Boost_LIBRARY_DIR_RELEASE C:\Program Files\Boost\lib
    • Boost_MPI_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_mpi-vc142-mt-gd-x64-1_76.lib
    • Boost_MPI_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_mpi-vc142-mt-x64-1_76.lib
    • Boost_REGEX_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_regex-vc142-mt-gd-x64-1_76.lib
    • Boost_REGEX_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_regex-vc142-mt-x64-1_76.lib
    • Boost_SERIALIZATION_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_serialization-vc142-mt-gd-x64-1_76.lib
    • Boost_SERIALIZATION_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_serialization-vc142-mt-x64-1_76.lib
    • Boost_SYSTEM_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_system-vc142-mt-gd-x64-1_76.lib
    • Boost_SYSTEM_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_system-vc142-mt-x64-1_76.lib

    CMAKE

    • CMAKE_CONFIGURATION_TYPES Debug;Release
    • CMAKE_INSTALL_PREFIX C:\Program Files\PCL

    FLANN

    • FLANN_INCLUDE_DIR C:\Program Files\flann\include
    • FLANN_LIBRARY_DEBUG_SHARED C:\Program Files\flann\lib\flann_cpp_s.lib
    • FLANN_LIBRARY_DEBUG_STATIC C:\Program Files\flann\lib\flann_cpp_s-gd.lib
    • FLANN_LIBRARY_SHARED C:\Program Files\flann\lib\flann_cpp_s.lib
    • FLANN_LIBRARY_STATIC C:\Program Files\flann\lib\flann_cpp_s-gd.lib

    OPENNI2

    • OPENNI2_INCLUDE_DIRS C:\Program Files\OpenNI2\Include
    • OPENNI2_LIBRARY C:\Program Files\OpenNI2\Lib\OpenNI2

    QHULL

    • QHULL_INCLUDE_DIR C:\Program Files\qhull\include
    • QHULL_LIBRARY C:\Program Files\qhull\lib\qhullstatic_r.lib
    • QHULL_LIBRARY_DEBUG C:\Program Files\qhull\lib\qhullstatic_rd.lib

    PCL

    • PCL_FLANN_REQUIRED_TYPE STATIC *3

    *3 FLANNを静的リンクライブラリでリンクする場合はSTATICを選択する。動的リンクライブラリでリンクする場合はSHAREDを選択する。DONTCAREを選択した場合はPCL_SHARED_LIBSの設定に従う。

    WITH

    • WITH_CUDA ☐(uncheck)
    • WITH_DAVIDSDK ☐(uncheck)
    • WITH_DOCS ☐(uncheck)
    • WITH_DSSDK ☐(uncheck)
    • WITH_ENSENSO ☐(uncheck)
    • WITH_LIBUSB ☐(uncheck)
    • WITH_OPENGL ☑(check)
    • WITH_OPENMP ☑(check)
    • WITH_OPENNI ☐(uncheck)
    • WITH_OPENNI2 ☑(check)
    • WITH_PCAP ☐(uncheck)
    • WITH_PNG ☐(uncheck)
    • WITH_QHULL ☑(check)
    • WITH_QT ☐(uncheck)
    • WITH_RSSDK ☐(uncheck)
    • WITH_RSSDK2 ☐(uncheck)
    • WITH_VTK ☑(check)
  4. 設定内容を確認する。

    • Eigen found (include: C:/Program Files/Eigen3/include/eigen3, version: 3.3.9)
    • OpenNI2 found (version: 2.2.0.33, include: C:/Program Files/OpenNI2/Include, lib: C:/Program Files/OpenNI2/Lib/OpenNI2.lib)
    • QHULL found (include: C:/Program Files/qhull/include, lib: optimized;C:/Program Files/qhull/lib/qhullstatic_r.lib;debug;C:/Program Files/qhull/lib/qhullstatic_rd.lib)
    • VTK version: 9.0.2 VTK rendering backend: OpenGL2 VTK Qt support: NOTFOUND VTK libs: VTK::WrappingTools;VTK::ViewsInfovis;VTK::CommonColor;VTK::ViewsContext2D;VTK::loguru;VTK::TestingRendering;VTK::TestingCore;VTK::vtksys;VTK::RenderingVolumeOpenGL2;VTK::glew;VTK::opengl;VTK::RenderingLabel;VTK::octree;VTK::RenderingLOD;VTK::RenderingImage;VTK::RenderingContextOpenGL2;VTK::IOVeraOut;VTK::hdf5;VTK::IOTecplotTable;VTK::IOSegY;VTK::IOParallelXML;VTK::IOParallel;VTK::jsoncpp;VTK::IOPLY;VTK::IOOggTheora;VTK::theora;VTK::ogg;VTK::IONetCDF;VTK::netcdf;VTK::IOMotionFX;VTK::pegtl;VTK::IOMINC;VTK::IOLSDyna;VTK::IOInfovis;VTK::libxml2;VTK::zlib;VTK::IOImport;VTK::IOGeometry;VTK::IOVideo;VTK::IOMovie;VTK::IOExportPDF;VTK::libharu;VTK::IOExportGL2PS;VTK::RenderingGL2PSOpenGL2;VTK::gl2ps;VTK::png;VTK::IOExport;VTK::RenderingVtkJS;VTK::RenderingSceneGraph;VTK::IOExodus;VTK::exodusII;VTK::IOEnSight;VTK::IOCityGML;VTK::pugixml;VTK::IOAsynchronous;VTK::IOAMR;VTK::InteractionImage;VTK::ImagingStencil;VTK::ImagingStatistics;VTK::ImagingMorphological;VTK::ImagingMath;VTK::IOSQL;VTK::sqlite;VTK::GeovisCore;VTK::libproj;VTK::InfovisLayout;VTK::ViewsCore;VTK::InteractionWidgets;VTK::RenderingVolume;VTK::RenderingAnnotation;VTK::ImagingHybrid;VTK::ImagingColor;VTK::InteractionStyle;VTK::FiltersTopology;VTK::FiltersSelection;VTK::FiltersSMP;VTK::FiltersProgrammable;VTK::FiltersPoints;VTK::FiltersVerdict;VTK::verdict;VTK::FiltersParallelImaging;VTK::FiltersImaging;VTK::ImagingGeneral;VTK::FiltersHyperTree;VTK::FiltersGeneric;VTK::FiltersFlowPaths;VTK::FiltersAMR;VTK::FiltersParallel;VTK::FiltersTexture;VTK::FiltersModeling;VTK::FiltersHybrid;VTK::DomainsChemistryOpenGL2;VTK::RenderingOpenGL2;VTK::RenderingUI;VTK::DomainsChemistry;VTK::ChartsCore;VTK::InfovisCore;VTK::FiltersExtraction;VTK::ParallelDIY;VTK::diy2;VTK::IOXML;VTK::IOXMLParser;VTK::expat;VTK::ParallelCore;VTK::IOLegacy;VTK::IOCore;VTK::doubleconversion;VTK::lz4;VTK::lzma;VTK::utf8;VTK::FiltersStatistics;VTK::eigen;VTK::ImagingFourier;VTK::ImagingSources;VTK::IOImage;VTK::DICOMParser;VTK::jpeg;VTK::metaio;VTK::tiff;VTK::RenderingContext2D;VTK::RenderingFreeType;VTK::freetype;VTK::kwiml;VTK::RenderingCore;VTK::FiltersSources;VTK::ImagingCore;VTK::FiltersGeometry;VTK::FiltersGeneral;VTK::CommonComputationalGeometry;VTK::FiltersCore;VTK::CommonExecutionModel;VTK::CommonDataModel;VTK::CommonSystem;VTK::CommonMisc;VTK::CommonTransforms;VTK::CommonMath;VTK::CommonCore
  5. [Generate]を押してソリューションファイルを出力する。

Build

  1. Visual Studioを管理者権限で起動してPCLのソリューションファイル(C:\PCL-1.12.0\build\PCL.sln)を開く。
    (Visual Studioを管理者権限で起動しないとINSTALLが失敗する。)

  2. PCLをビルドする。(ALL_BUILD)

    1. ソリューションの構成(Debug, Release)を設定する。
    2. ソリューションエクスプローラーからALL_BUILDプロジェクトを選択する。
    3. [ビルド]>[ソリューションのビルド]を押してPCLをビルドする。
  3. PCLをインストールする。(INSTALL)

    1. ソリューションエクスプローラーからINSTALLプロジェクトを選択する。
    2. [ビルド]>[プロジェクトのみ]>[INSTALLのみをビルド]を押してPCLをインストールする。
      CMAKE_INSTALL_PREFIXで指定した出力先へ必要なファイルがコピーされる。

Environment Variable

  1. 環境変数PCL_ROOTを作成してPCLのパス(C:\Program Files\PCL)を設定する。

  2. 環境変数PathにPCLと3rdPartyのパスを追加する。

    • ;%PCL_ROOT%\bin
    • ;%PCL_ROOT%\3rdPrty\VTK\bin
    • ;%OPENNI2_REDIST64%

Building PCL 1.12.1 with Visual Studio

Download

  1. PCLをGitからクローンする。(C:\PCL-1.12.1)
    https://github.com/PointCloudLibrary/pcl/releases/tag/pcl-1.12.1

  2. 以下のコミットの修正をマージする。(PCL 1.12.1 RC1のみ)
    PointCloudLibrary/pcl#5077
    PointCloudLibrary/pcl#5079

3rdParty

  1. 3rdPartyのライブラリをビルド、インストールする。

  2. 3rdPartyのライブラリの環境変数を設定する。

    • BOOST_ROOT C:\Program Files\Boost
    • EIGEN_ROOT C:\Program Files\Eigen3
    • FLANN_ROOT C:\Program Files\flann
    • QHULL_ROOT C:\Program Files\qfull
    • VTK_DIR C:\Program Files\VTK

CMake

  1. ソースコードの入力先とソリューションファイルの出力先を指定する。

    • Where is the source code: C:\PCL-1.12.1
    • Where is build the binaries: C:\PCL-1.12.1\build
  2. [Configure]を押してターゲットとなるVisual Studioを選択する。

  3. 各種設定を行う。
    (GroupedとAdvancedにチェックを入れるとわかりやすい。)
    Ungrouped Entries

    • EIGEN_INCLUDE_DIR C:\Program Files\Eigen3\include\eigen3
    • Qhull_DIR C:/Program Files/qhull/lib/cmake/Qhull

    BUILD

    • BUILD_2d ☑(check)
    • BUILD_CUDA ☐(uncheck)
    • BUILD_GPU ☐(uncheck)
    • BUILD_all_in_one_installer ☑(check)*1
    • BUILD_apps ☐(uncheck)
    • BUILD_benchmarks ☐(uncheck)
    • BUILD_common ☑(check)
    • BUILD_example ☐(uncheck)
    • BUILD_features ☑(check)
    • BUILD_filters ☑(check)
    • BUILD_geometry ☑(check)
    • BUILD_global_tests ☐(uncheck)
    • BUILD_io ☑(check)
    • BUILD_kdtree ☑(check)
    • BUILD_keypoints ☑(check)
    • BUILD_ml ☑(check)  
    • BUILD_octree ☑(check)
    • BUILD_outofcore ☑(check)
    • BUILD_people ☑(check)
    • BUILD_recognition ☑(check)
    • BUILD_registration ☑(check)
    • BUILD_sample_consensus ☑(check)
    • BUILD_search ☑(check)
    • BUILD_segmentation ☑(check)
    • BUILD_simulation ☐(uncheck)
    • BUILD_stereo ☑(check)
    • BUILD_surface ☑(check)
    • BUILD_surface_on_nurbs ☑(check)
    • BUILD_tools ☑(check)*2
    • BUILD_tracking ☑(check)
    • BUILD_visualization ☑(check)

    *1 INSTALLプロジェクトをビルドしたとき<CMAKE_INSTALL_PREFIX>(C:\Program Files\PCL)に指定したディレクトリにPCLと3rdPartyがコピーされる。
    *2 ビルドに時間がかかるため、各種ツール類(bin\pcl_*.exe)が必要でなければチェックを外す。

    Boost

    • Boost_DATE_TIME_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_date_time-vc142-mt-gd-x64-1_76.lib
    • Boost_DATE_TIME_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_date_time-vc142-mt-x64-1_78.lib
    • Boost_DIR C:\Program Files\Boost\lib\cmake\Boost-1.78.0
    • Boost_FILESYSTEM_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_filesystem-vc142-mt-gd-x64-1_78.lib
    • Boost_FILESYSTEM_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_filesystem-vc142-mt-x64-1_78.lib
    • Boost_INCLUDE_DIR C:\Program Files\Boost\include\boost-x64-1_78
    • Boost_IOSTREAMS_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_iostreams-vc142-mt-gd-x64-1_78.lib
    • Boost_IOSTREAMS_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_iostreams-vc142-mt-x64-1_78.lib
    • Boost_MPI_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_mpi-vc142-mt-gd-x64-1_78.lib
    • Boost_MPI_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_mpi-vc142-mt-x64-1_78.lib
    • Boost_SERIALIZATION_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_serialization-vc142-mt-gd-x64-1_78.lib
    • Boost_SERIALIZATION_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_serialization-vc142-mt-x64-1_78.lib
    • Boost_SYSTEM_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_system-vc142-mt-gd-x64-1_78.lib
    • Boost_SYSTEM_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_system-vc142-mt-x64-1_78.lib

    CMAKE

    • CMAKE_CONFIGURATION_TYPES Debug;Release
    • CMAKE_INSTALL_PREFIX C:\Program Files\PCL

    FLANN

    • FLANN_INCLUDE_DIR C:\Program Files\flann\include
    • FLANN_LIBRARY_DEBUG_SHARED C:\Program Files\flann\lib\flann_cpp_s.lib
    • FLANN_LIBRARY_DEBUG_STATIC C:\Program Files\flann\lib\flann_cpp_s-gd.lib
    • FLANN_LIBRARY_SHARED C:\Program Files\flann\lib\flann_cpp_s.lib
    • FLANN_LIBRARY_STATIC C:\Program Files\flann\lib\flann_cpp_s-gd.lib

    OPENNI2

    • OPENNI2_INCLUDE_DIRS C:\Program Files\OpenNI2\Include
    • OPENNI2_LIBRARY C:\Program Files\OpenNI2\Lib\OpenNI2

    PCL

    • PCL_FLANN_REQUIRED_TYPE STATIC *3

    *3 FLANNを静的リンクライブラリでリンクする場合はSTATICを選択する。動的リンクライブラリでリンクする場合はSHAREDを選択する。DONTCAREを選択した場合はPCL_SHARED_LIBSの設定に従う。

    VTK

    • VTK_DIR C:\Program Files\VTK\lib\cmake\vtk-9.0

    WITH

    • WITH_CUDA ☐(uncheck)
    • WITH_DAVIDSDK ☐(uncheck)
    • WITH_DOCS ☐(uncheck)
    • WITH_DSSDK ☐(uncheck)
    • WITH_ENSENSO ☐(uncheck)
    • WITH_LIBUSB ☐(uncheck)
    • WITH_OPENGL ☑(check)
    • WITH_OPENMP ☑(check)
    • WITH_OPENNI ☐(uncheck)
    • WITH_OPENNI2 ☑(check)
    • WITH_PCAP ☐(uncheck)
    • WITH_PNG ☐(uncheck)
    • WITH_QHULL ☑(check)
    • WITH_QT NO
    • WITH_RSSDK ☐(uncheck)
    • WITH_RSSDK2 ☐(uncheck)
    • WITH_VTK ☑(check)

    boost

    • boost_atomic_DIR C:\Program Files\Boost\lib\cmake\boost_atomic-1.78.0
    • boost_date_time_DIR C:\Program Files\Boost\lib\cmake\boost_date_time-1.78.0
    • boost_filesystem_DIR C:\Program Files\Boost\lib\cmake\boost_filesystem-1.78.0
    • boost_headers_DIR C:\Program Files\Boost\lib\cmake\boost_headers-1.78.0
    • boost_iostreams_DIR C:\Program Files\Boost\lib\cmake\boost_iostreams-1.78.0
    • boost_mpi_DIR C:\Program Files\Boost\lib\cmake\boost_mpi-1.78.0
    • boost_serialization_DIR C:\Program Files\Boost\lib\cmake\boost_serialization-1.78.0
    • boost_system_DIR C:\Program Files\Boost\lib\cmake\boost_system-1.78.0
  4. 設定内容を確認する。

    • Eigen found (include: C:/Program Files/Eigen3/include/eigen3, version: 3.4.0)
    • OpenNI2 found (version: 2.2.0.33, include: C:/Program Files/OpenNI2/Include, lib: C:/Program Files/OpenNI2/Lib/OpenNI2.lib)
    • Found Qhull version 8.0.2
    • VTK version: 9.1.0 VTK rendering backend: OpenGL2 VTK Qt support: NOTFOUND VTK libs: VTK libs: VTK::WrappingTools;VTK::ViewsInfovis;VTK::CommonColor;VTK::ViewsContext2D;VTK::loguru;VTK::TestingRendering;VTK::TestingCore;VTK::vtksys;VTK::RenderingVolumeOpenGL2;VTK::glew;VTK::opengl;VTK::RenderingLabel;VTK::octree;VTK::RenderingLOD;VTK::RenderingImage;VTK::RenderingContextOpenGL2;VTK::IOVeraOut;VTK::hdf5;VTK::IOTecplotTable;VTK::IOSegY;VTK::IOParallelXML;VTK::IOParallel;VTK::jsoncpp;VTK::IOPLY;VTK::IOOggTheora;VTK::theora;VTK::ogg;VTK::IONetCDF;VTK::netcdf;VTK::IOMotionFX;VTK::pegtl;VTK::IOMINC;VTK::IOLSDyna;VTK::IOInfovis;VTK::libxml2;VTK::zlib;VTK::IOImport;VTK::IOIOSS;VTK::ioss;VTK::exodusII;VTK::cgns;VTK::IOHDF;VTK::IOVideo;VTK::IOMovie;VTK::IOExportPDF;VTK::libharu;VTK::IOExportGL2PS;VTK::RenderingGL2PSOpenGL2;VTK::gl2ps;VTK::png;VTK::IOExport;VTK::RenderingVtkJS;VTK::IOGeometry;VTK::RenderingSceneGraph;VTK::IOExodus;VTK::IOEnSight;VTK::IOCityGML;VTK::pugixml;VTK::IOChemistry;VTK::IOCONVERGECFD;VTK::IOCGNSReader;VTK::IOAsynchronous;VTK::IOAMR;VTK::InteractionImage;VTK::ImagingStencil;VTK::ImagingStatistics;VTK::ImagingMorphological;VTK::ImagingMath;VTK::ImagingFourier;VTK::IOSQL;VTK::sqlite;VTK::GeovisCore;VTK::libproj;VTK::InfovisLayout;VTK::ViewsCore;VTK::InteractionWidgets;VTK::RenderingVolume;VTK::RenderingAnnotation;VTK::ImagingHybrid;VTK::ImagingColor;VTK::InteractionStyle;VTK::FiltersTopology;VTK::FiltersSelection;VTK::FiltersSMP;VTK::FiltersProgrammable;VTK::FiltersPoints;VTK::FiltersVerdict;VTK::verdict;VTK::FiltersParallelImaging;VTK::FiltersImaging;VTK::ImagingGeneral;VTK::FiltersHyperTree;VTK::FiltersGeneric;VTK::FiltersFlowPaths;VTK::eigen;VTK::FiltersAMR;VTK::FiltersParallel;VTK::FiltersTexture;VTK::FiltersModeling;VTK::FiltersHybrid;VTK::DomainsChemistryOpenGL2;VTK::RenderingOpenGL2;VTK::RenderingUI;VTK::DomainsChemistry;VTK::ChartsCore;VTK::InfovisCore;VTK::FiltersExtraction;VTK::ParallelDIY;VTK::diy2;VTK::IOXML;VTK::IOXMLParser;VTK::expat;VTK::ParallelCore;VTK::IOLegacy;VTK::IOCore;VTK::doubleconversion;VTK::lz4;VTK::lzma;VTK::utf8;VTK::FiltersStatistics;VTK::ImagingSources;VTK::IOImage;VTK::DICOMParser;VTK::jpeg;VTK::metaio;VTK::tiff;VTK::RenderingContext2D;VTK::RenderingFreeType;VTK::freetype;VTK::kwiml;VTK::RenderingCore;VTK::FiltersSources;VTK::ImagingCore;VTK::FiltersGeometry;VTK::FiltersGeneral;VTK::fmt;VTK::CommonComputationalGeometry;VTK::FiltersCore;VTK::CommonExecutionModel;VTK::CommonDataModel;VTK::CommonSystem;VTK::CommonMisc;VTK::exprtk;VTK::CommonTransforms;VTK::CommonMath;VTK::kissfft;VTK::CommonCore
  5. [Generate]を押してソリューションファイルを出力する。

Build

  1. Visual Studioを管理者権限で起動してPCLのソリューションファイル(C:\PCL-1.12.1\build\PCL.sln)を開く。
    (Visual Studioを管理者権限で起動しないとINSTALLが失敗する。)

  2. PCLをビルドする。(ALL_BUILD)

    1. ソリューションの構成(Debug, Release)を設定する。
    2. ソリューションエクスプローラーからALL_BUILDプロジェクトを選択する。
    3. [ビルド]>[ソリューションのビルド]を押してPCLをビルドする。
  3. PCLをインストールする。(INSTALL)

    1. ソリューションエクスプローラーからINSTALLプロジェクトを選択する。
    2. [ビルド]>[プロジェクトのみ]>[INSTALLのみをビルド]を押してPCLをインストールする。
      CMAKE_INSTALL_PREFIXで指定した出力先へ必要なファイルがコピーされる。

Environment Variable

  1. 環境変数PCL_ROOTを作成してPCLのパス(C:\Program Files\PCL)を設定する。

  2. 環境変数PathにPCLと3rdPartyのパスを追加する。

    • ;%PCL_ROOT%\bin
    • ;%PCL_ROOT%\3rdPrty\VTK\bin
    • ;%OPENNI2_REDIST64%

Building PCL 1.13.0 with Visual Studio

Download

  1. PCLをGitからクローンする。(C:\PCL-1.13.0)
    https://github.com/PointCloudLibrary/pcl/releases/tag/pcl-1.13.0

3rdParty

  1. 3rdPartyのライブラリをビルド、インストールする。

  2. 3rdPartyのライブラリの環境変数を設定する。

    • BOOST_ROOT C:\Program Files\Boost
    • EIGEN_ROOT C:\Program Files\Eigen3
    • FLANN_ROOT C:\Program Files\flann
    • QHULL_ROOT C:\Program Files\qfull
    • VTK_DIR C:\Program Files\VTK

CMake

  1. ソースコードの入力先とソリューションファイルの出力先を指定する。

    • Where is the source code: C:\PCL-1.13.0
    • Where is build the binaries: C:\PCL-1.13.0\build
  2. [Configure]を押してターゲットとなるVisual Studioを選択する。

  3. 各種設定を行う。
    (GroupedとAdvancedにチェックを入れるとわかりやすい。)
    Ungrouped Entries

    • EIGEN_INCLUDE_DIR C:/Program Files/Eigen3/include/eigen3
    • Qhull_DIR C:/Program Files/qhull/lib/cmake/Qhull

    BUILD

    • BUILD_2d ☑(check)
    • BUILD_CUDA ☐(uncheck)
    • BUILD_GPU ☐(uncheck)
    • BUILD_all_in_one_installer ☑(check)*1
    • BUILD_apps ☐(uncheck)
    • BUILD_benchmarks ☐(uncheck)
    • BUILD_common ☑(check)
    • BUILD_example ☐(uncheck)
    • BUILD_features ☑(check)
    • BUILD_filters ☑(check)
    • BUILD_geometry ☑(check)
    • BUILD_global_tests ☐(uncheck)
    • BUILD_io ☑(check)
    • BUILD_kdtree ☑(check)
    • BUILD_keypoints ☑(check)
    • BUILD_ml ☑(check)  
    • BUILD_octree ☑(check)
    • BUILD_outofcore ☑(check)
    • BUILD_people ☑(check)
    • BUILD_recognition ☑(check)
    • BUILD_registration ☑(check)
    • BUILD_sample_consensus ☑(check)
    • BUILD_search ☑(check)
    • BUILD_segmentation ☑(check)
    • BUILD_simulation ☐(uncheck)
    • BUILD_stereo ☑(check)
    • BUILD_surface ☑(check)
    • BUILD_surface_on_nurbs ☑(check)
    • BUILD_tools ☑(check)*2
    • BUILD_tracking ☑(check)
    • BUILD_visualization ☑(check)

    *1 INSTALLプロジェクトをビルドしたとき<CMAKE_INSTALL_PREFIX>(C:\Program Files\PCL)に指定したディレクトリにPCLと3rdPartyがコピーされる。
    *2 ビルドに時間がかかるため、各種ツール類(bin\pcl_*.exe)が必要でなければチェックを外す。

    Boost

    • Boost_DATE_TIME_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_date_time-vc143-mt-gd-x64-1_80.lib
    • Boost_DATE_TIME_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_date_time-vc143-mt-x64-1_80.lib
    • Boost_DIR C:\Program Files\Boost\lib\cmake\Boost-1.78.0
    • Boost_FILESYSTEM_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_filesystem-vc143-mt-gd-x64-1_80.lib
    • Boost_FILESYSTEM_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_filesystem-vc143-mt-x64-1_80.lib
    • Boost_INCLUDE_DIR C:\Program Files\Boost\include\boost-x64-1_80
    • Boost_IOSTREAMS_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_iostreams-vc143-mt-gd-x64-1_80.lib
    • Boost_IOSTREAMS_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_iostreams-vc143-mt-x64-1_80.lib
    • Boost_MPI_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_mpi-vc143-mt-gd-x64-1_80.lib
    • Boost_MPI_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_mpi-vc143-mt-x64-1_80.lib
    • Boost_SERIALIZATION_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_serialization-vc143-mt-gd-x64-1_80.lib
    • Boost_SERIALIZATION_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_serialization-vc143-mt-x64-1_80.lib
    • Boost_SYSTEM_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_system-vc143-mt-gd-x64-1_80.lib
    • Boost_SYSTEM_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_system-vc143-mt-x64-1_80.lib

    CMAKE

    • CMAKE_CONFIGURATION_TYPES Debug;Release
    • CMAKE_INSTALL_PREFIX C:\Program Files\PCL

    FLANN

    • FLANN_INCLUDE_DIR C:\Program Files\flann\include
    • FLANN_LIBRARY_DEBUG_SHARED C:\Program Files\flann\lib\flann_cpp-gd.lib
    • FLANN_LIBRARY_DEBUG_STATIC C:\Program Files\flann\lib\flann_cpp_s-gd.lib
    • FLANN_LIBRARY_SHARED C:\Program Files\flann\lib\flann_cpp.lib
    • FLANN_LIBRARY_STATIC C:\Program Files\flann\lib\flann_cpp_s-gd.lib

    OPENNI2

    • OPENNI2_INCLUDE_DIRS C:\Program Files\OpenNI2\Include
    • OPENNI2_LIBRARY C:\Program Files\OpenNI2\Lib\OpenNI2

    PCL

    • PCL_FLANN_REQUIRED_TYPE STATIC *3
    • PCL_QHULL_REQUIRED_TYPE STATIC *4

    *3 FLANNを静的リンクライブラリでリンクする場合はSTATICを選択する。動的リンクライブラリでリンクする場合はSHAREDを選択する。DONTCAREを選択した場合はPCL_SHARED_LIBSの設定に従う。
    *4 QHullを静的リンクライブラリでリンクする場合はSTATICを選択する。動的リンクライブラリでリンクする場合はSHAREDを選択する。DONTCAREを選択した場合はPCL_SHARED_LIBSの設定に従う。

    VTK

    • VTK_DIR C:\Program Files\VTK\lib\cmake\vtk-9.2

    WITH

    • WITH_CUDA ☐(uncheck)
    • WITH_DAVIDSDK ☐(uncheck)
    • WITH_DOCS ☐(uncheck)
    • WITH_DSSDK ☐(uncheck)
    • WITH_ENSENSO ☐(uncheck)
    • WITH_LIBUSB ☐(uncheck)
    • WITH_OPENGL ☑(check)
    • WITH_OPENMP ☑(check)
    • WITH_OPENNI ☐(uncheck)
    • WITH_OPENNI2 ☑(check)
    • WITH_PCAP ☐(uncheck)
    • WITH_PNG ☐(uncheck)
    • WITH_QHULL ☑(check)
    • WITH_QT NO
    • WITH_RSSDK ☐(uncheck)
    • WITH_RSSDK2 ☐(uncheck)
    • WITH_VTK ☑(check)

    boost

    • boost_atomic_DIR C:\Program Files\Boost\lib\cmake\boost_atomic-1.80.0
    • boost_bzip2_DIR C:\Program Files\Boost\lib\cmake\boost_bzip2-1.80.0
    • boost_date_time_DIR C:\Program Files\Boost\lib\cmake\boost_date_time-1.80.0
    • boost_filesystem_DIR C:\Program Files\Boost\lib\cmake\boost_filesystem-1.80.0
    • boost_headers_DIR C:\Program Files\Boost\lib\cmake\boost_headers-1.80.0
    • boost_iostreams_DIR C:\Program Files\Boost\lib\cmake\boost_iostreams-1.80.0
    • boost_mpi_DIR C:\Program Files\Boost\lib\cmake\boost_mpi-1.80.0
    • boost_serialization_DIR C:\Program Files\Boost\lib\cmake\boost_serialization-1.80.0
    • boost_system_DIR C:\Program Files\Boost\lib\cmake\boost_system-1.80.0
    • boost_zlib_DIR C:/Program Files/Boost/lib/cmake/boost_zlib-1.80.0
  4. 設定内容を確認する。

    • Eigen found (include: C:/Program Files/Eigen3/include/eigen3, version: 3.4.0)
    • FLANN found (include: C:/Program Files/flann/include, lib: C:/Program Files/flann/lib/flann_cpp_s.lib)
    • OpenNI2 found (version: 2.2.0.33, include: C:/Program Files/OpenNI2/Include, lib: C:/Program Files/OpenNI2/Lib/OpenNI2.lib)
    • Found Qhull version 8.0.2
    • VTK version: 9.2.2 VTK rendering backend: OpenGL2 VTK Qt support: NOTFOUND VTK libs: VTK::WrappingTools;VTK::ViewsInfovis;VTK::CommonColor;VTK::ViewsContext2D;VTK::loguru;VTK::TestingRendering;VTK::TestingCore;VTK::vtksys;VTK::RenderingVolumeOpenGL2;VTK::glew;VTK::opengl;VTK::RenderingLabel;VTK::octree;VTK::RenderingLOD;VTK::RenderingLICOpenGL2;VTK::RenderingImage;VTK::RenderingContextOpenGL2;VTK::IOVeraOut;VTK::hdf5;VTK::IOTecplotTable;VTK::utf8;VTK::IOSegY;VTK::IOParallelXML;VTK::IOParallel;VTK::jsoncpp;VTK::IOPLY;VTK::IOOggTheora;VTK::theora;VTK::ogg;VTK::IONetCDF;VTK::netcdf;VTK::libproj;VTK::IOMotionFX;VTK::pegtl;VTK::IOMINC;VTK::IOLSDyna;VTK::IOInfovis;VTK::libxml2;VTK::zlib;VTK::IOImport;VTK::IOIOSS;VTK::fmt;VTK::ioss;VTK::cgns;VTK::exodusII;VTK::IOVideo;VTK::IOMovie;VTK::IOExportPDF;VTK::libharu;VTK::IOExportGL2PS;VTK::RenderingGL2PSOpenGL2;VTK::gl2ps;VTK::png;VTK::IOExport;VTK::RenderingVtkJS;VTK::nlohmannjson;VTK::RenderingSceneGraph;VTK::IOExodus;VTK::IOEnSight;VTK::IOCityGML;VTK::pugixml;VTK::IOChemistry;VTK::IOCesium3DTiles;VTK::IOGeometry;VTK::IOCONVERGECFD;VTK::IOHDF;VTK::IOCGNSReader;VTK::IOAsynchronous;VTK::IOAMR;VTK::InteractionImage;VTK::ImagingStencil;VTK::ImagingStatistics;VTK::ImagingMorphological;VTK::ImagingMath;VTK::ImagingFourier;VTK::IOSQL;VTK::sqlite;VTK::GeovisCore;VTK::InfovisLayout;VTK::ViewsCore;VTK::InteractionWidgets;VTK::RenderingVolume;VTK::RenderingAnnotation;VTK::ImagingHybrid;VTK::ImagingColor;VTK::InteractionStyle;VTK::FiltersTopology;VTK::FiltersSelection;VTK::FiltersSMP;VTK::FiltersProgrammable;VTK::FiltersPoints;VTK::FiltersVerdict;VTK::verdict;VTK::FiltersParallelImaging;VTK::FiltersImaging;VTK::ImagingGeneral;VTK::FiltersGeneric;VTK::FiltersFlowPaths;VTK::eigen;VTK::FiltersAMR;VTK::FiltersParallel;VTK::FiltersTexture;VTK::FiltersModeling;VTK::DomainsChemistryOpenGL2;VTK::RenderingOpenGL2;VTK::RenderingHyperTreeGrid;VTK::RenderingUI;VTK::FiltersHyperTree;VTK::FiltersHybrid;VTK::DomainsChemistry;VTK::ChartsCore;VTK::InfovisCore;VTK::FiltersExtraction;VTK::ParallelDIY;VTK::diy2;VTK::IOXML;VTK::IOXMLParser;VTK::expat;VTK::ParallelCore;VTK::IOLegacy;VTK::IOCore;VTK::doubleconversion;VTK::lz4;VTK::lzma;VTK::FiltersStatistics;VTK::ImagingSources;VTK::IOImage;VTK::DICOMParser;VTK::jpeg;VTK::metaio;VTK::tiff;VTK::RenderingContext2D;VTK::RenderingFreeType;VTK::freetype;VTK::kwiml;VTK::RenderingCore;VTK::FiltersSources;VTK::ImagingCore;VTK::FiltersGeometry;VTK::FiltersGeneral;VTK::CommonComputationalGeometry;VTK::FiltersCore;VTK::CommonExecutionModel;VTK::CommonDataModel;VTK::CommonSystem;VTK::CommonMisc;VTK::exprtk;VTK::CommonTransforms;VTK::CommonMath;VTK::kissfft;VTK::CommonCore
  5. [Generate]を押してソリューションファイルを出力する。

Build

  1. Visual Studioを管理者権限で起動してPCLのソリューションファイル(C:\PCL-1.13.0\build\PCL.sln)を開く。
    (Visual Studioを管理者権限で起動しないとINSTALLが失敗する。)

  2. PCLをビルドする。(ALL_BUILD)

    1. ソリューションの構成(Debug, Release)を設定する。
    2. ソリューションエクスプローラーからALL_BUILDプロジェクトを選択する。
    3. [ビルド]>[ソリューションのビルド]を押してPCLをビルドする。
  3. PCLをインストールする。(INSTALL)

    1. ソリューションエクスプローラーからINSTALLプロジェクトを選択する。
    2. [ビルド]>[プロジェクトのみ]>[INSTALLのみをビルド]を押してPCLをインストールする。
      CMAKE_INSTALL_PREFIXで指定した出力先へ必要なファイルがコピーされる。

Environment Variable

  1. 環境変数PCL_ROOTを作成してPCLのパス(C:\Program Files\PCL)を設定する。

  2. 環境変数PathにPCLと3rdPartyのパスを追加する。

    • ;%PCL_ROOT%\bin
    • ;%PCL_ROOT%\3rdPrty\VTK\bin
    • ;%OPENNI2_REDIST64%

Building PCL 1.13.1 with Visual Studio

Download

  1. PCLをGitからクローンする。(C:\PCL-1.13.1)
    https://github.com/PointCloudLibrary/pcl/releases/tag/pcl-1.13.1

3rdParty

  1. 3rdPartyのライブラリをビルド、インストールする。

  2. 3rdPartyのライブラリの環境変数を設定する。

    • BOOST_ROOT C:\Program Files\Boost
    • EIGEN_ROOT C:\Program Files\Eigen3
    • FLANN_ROOT C:\Program Files\flann
    • QHULL_ROOT C:\Program Files\qfull
    • VTK_DIR C:\Program Files\VTK

CMake

  1. ソースコードの入力先とソリューションファイルの出力先を指定する。

    • Where is the source code: C:\PCL-1.13.1
    • Where is build the binaries: C:\PCL-1.13.1\build
  2. [Configure]を押してターゲットとなるVisual Studioを選択する。

  3. 各種設定を行う。
    (GroupedとAdvancedにチェックを入れるとわかりやすい。)
    Ungrouped Entries

    • EIGEN_INCLUDE_DIR C:/Program Files/Eigen3/include/eigen3
    • Qhull_DIR C:/Program Files/qhull/lib/cmake/Qhull

    BUILD

    • BUILD_2d ☑(check)
    • BUILD_CUDA ☐(uncheck)
    • BUILD_GPU ☐(uncheck)
    • BUILD_all_in_one_installer ☑(check)*1
    • BUILD_apps ☐(uncheck)
    • BUILD_benchmarks ☐(uncheck)
    • BUILD_common ☑(check)
    • BUILD_example ☐(uncheck)
    • BUILD_features ☑(check)
    • BUILD_filters ☑(check)
    • BUILD_geometry ☑(check)
    • BUILD_global_tests ☐(uncheck)
    • BUILD_io ☑(check)
    • BUILD_kdtree ☑(check)
    • BUILD_keypoints ☑(check)
    • BUILD_ml ☑(check)  
    • BUILD_octree ☑(check)
    • BUILD_outofcore ☑(check)
    • BUILD_people ☑(check)
    • BUILD_recognition ☑(check)
    • BUILD_registration ☑(check)
    • BUILD_sample_consensus ☑(check)
    • BUILD_search ☑(check)
    • BUILD_segmentation ☑(check)
    • BUILD_simulation ☐(uncheck)
    • BUILD_stereo ☑(check)
    • BUILD_surface ☑(check)
    • BUILD_surface_on_nurbs ☑(check)
    • BUILD_tools ☑(check)*2
    • BUILD_tracking ☑(check)
    • BUILD_visualization ☑(check)

    *1 INSTALLプロジェクトをビルドしたとき<CMAKE_INSTALL_PREFIX>(C:\Program Files\PCL)に指定したディレクトリにPCLと3rdPartyがコピーされる。
    *2 ビルドに時間がかかるため、各種ツール類(bin\pcl_*.exe)が必要でなければチェックを外す。

    Boost

    • Boost_DATE_TIME_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_date_time-vc143-mt-gd-x64-1_82.lib
    • Boost_DATE_TIME_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_date_time-vc143-mt-x64-1_82.lib
    • Boost_DIR C:\Program Files\Boost\lib\cmake\Boost-1.78.0
    • Boost_FILESYSTEM_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_filesystem-vc143-mt-gd-x64-1_82.lib
    • Boost_FILESYSTEM_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_filesystem-vc143-mt-x64-1_82.lib
    • Boost_INCLUDE_DIR C:\Program Files\Boost\include\boost-x64-1_82
    • Boost_IOSTREAMS_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_iostreams-vc143-mt-gd-x64-1_82.lib
    • Boost_IOSTREAMS_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_iostreams-vc143-mt-x64-1_82.lib
    • Boost_MPI_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_mpi-vc143-mt-gd-x64-1_82.lib
    • Boost_MPI_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_mpi-vc143-mt-x64-1_82.lib
    • Boost_SERIALIZATION_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_serialization-vc143-mt-gd-x64-1_82.lib
    • Boost_SERIALIZATION_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_serialization-vc143-mt-x64-1_82.lib
    • Boost_SYSTEM_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_system-vc143-mt-gd-x64-1_82.lib
    • Boost_SYSTEM_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_system-vc143-mt-x64-1_82.lib

    CMAKE

    • CMAKE_CONFIGURATION_TYPES Debug;Release
    • CMAKE_INSTALL_PREFIX C:\Program Files\PCL

    FLANN

    • FLANN_INCLUDE_DIR C:\Program Files\flann\include
    • FLANN_LIBRARY_DEBUG_SHARED C:\Program Files\flann\lib\flann_cpp-gd.lib
    • FLANN_LIBRARY_DEBUG_STATIC C:\Program Files\flann\lib\flann_cpp_s-gd.lib
    • FLANN_LIBRARY_SHARED C:\Program Files\flann\lib\flann_cpp.lib
    • FLANN_LIBRARY_STATIC C:\Program Files\flann\lib\flann_cpp_s-gd.lib

    OPENNI2

    • OPENNI2_INCLUDE_DIRS C:\Program Files\OpenNI2\Include
    • OPENNI2_LIBRARY C:\Program Files\OpenNI2\Lib\OpenNI2

    PCL

    • PCL_FLANN_REQUIRED_TYPE STATIC *3
    • PCL_QHULL_REQUIRED_TYPE STATIC *4

    *3 FLANNを静的リンクライブラリでリンクする場合はSTATICを選択する。動的リンクライブラリでリンクする場合はSHAREDを選択する。DONTCAREを選択した場合はPCL_SHARED_LIBSの設定に従う。
    *4 QHullを静的リンクライブラリでリンクする場合はSTATICを選択する。動的リンクライブラリでリンクする場合はSHAREDを選択する。DONTCAREを選択した場合はPCL_SHARED_LIBSの設定に従う。

    VTK

    • VTK_DIR C:\Program Files\VTK\lib\cmake\vtk-9.2

    WITH

    • WITH_CUDA ☐(uncheck)
    • WITH_DAVIDSDK ☐(uncheck)
    • WITH_DOCS ☐(uncheck)
    • WITH_DSSDK ☐(uncheck)
    • WITH_ENSENSO ☐(uncheck)
    • WITH_LIBUSB ☐(uncheck)
    • WITH_OPENGL ☑(check)
    • WITH_OPENMP ☑(check)
    • WITH_OPENNI ☐(uncheck)
    • WITH_OPENNI2 ☑(check)
    • WITH_PCAP ☐(uncheck)
    • WITH_PNG ☐(uncheck)
    • WITH_QHULL ☑(check)
    • WITH_QT NO
    • WITH_RSSDK ☐(uncheck)
    • WITH_RSSDK2 ☐(uncheck)
    • WITH_VTK ☑(check)

    boost

    • boost_atomic_DIR C:\Program Files\Boost\lib\cmake\boost_atomic-1.82.0
    • boost_bzip2_DIR C:\Program Files\Boost\lib\cmake\boost_bzip2-1.82.0
    • boost_date_time_DIR C:\Program Files\Boost\lib\cmake\boost_date_time-1.82.0
    • boost_filesystem_DIR C:\Program Files\Boost\lib\cmake\boost_filesystem-1.82.0
    • boost_headers_DIR C:\Program Files\Boost\lib\cmake\boost_headers-1.82.0
    • boost_iostreams_DIR C:\Program Files\Boost\lib\cmake\boost_iostreams-1.82.0
    • boost_mpi_DIR C:\Program Files\Boost\lib\cmake\boost_mpi-1.82.0
    • boost_serialization_DIR C:\Program Files\Boost\lib\cmake\boost_serialization-1.82.0
    • boost_system_DIR C:\Program Files\Boost\lib\cmake\boost_system-1.82.0
    • boost_zlib_DIR C:/Program Files/Boost/lib/cmake/boost_zlib-1.82.0
  4. 設定内容を確認する。

    • Eigen found (include: C:/Program Files/Eigen3/include/eigen3, version: 3.4.0)
    • FLANN found (include: C:/Program Files/flann/include, lib: C:/Program Files/flann/lib/flann_cpp_s.lib)
    • OpenNI2 found (version: 2.2.0.33, include: C:/Program Files/OpenNI2/Include, lib: C:/Program Files/OpenNI2/Lib/OpenNI2.lib)
    • Found Qhull version 8.0.2
    • VTK version: 9.2.6 VTK rendering backend: OpenGL2 VTK Qt support: NOTFOUND VTK libs: VTK::WrappingTools;VTK::ViewsInfovis;VTK::CommonColor;VTK::ViewsContext2D;VTK::loguru;VTK::TestingRendering;VTK::TestingCore;VTK::vtksys;VTK::RenderingVolumeOpenGL2;VTK::glew;VTK::opengl;VTK::RenderingLabel;VTK::octree;VTK::RenderingLOD;VTK::RenderingLICOpenGL2;VTK::RenderingImage;VTK::RenderingContextOpenGL2;VTK::IOVeraOut;VTK::hdf5;VTK::IOTecplotTable;VTK::utf8;VTK::IOSegY;VTK::IOParallelXML;VTK::IOParallel;VTK::jsoncpp;VTK::IOPLY;VTK::IOOggTheora;VTK::theora;VTK::ogg;VTK::IONetCDF;VTK::netcdf;VTK::libproj;VTK::IOMotionFX;VTK::pegtl;VTK::IOMINC;VTK::IOLSDyna;VTK::IOInfovis;VTK::libxml2;VTK::zlib;VTK::IOImport;VTK::IOIOSS;VTK::fmt;VTK::ioss;VTK::cgns;VTK::exodusII;VTK::IOVideo;VTK::IOMovie;VTK::IOExportPDF;VTK::libharu;VTK::IOExportGL2PS;VTK::RenderingGL2PSOpenGL2;VTK::gl2ps;VTK::png;VTK::IOExport;VTK::RenderingVtkJS;VTK::nlohmannjson;VTK::RenderingSceneGraph;VTK::IOExodus;VTK::IOEnSight;VTK::IOCityGML;VTK::pugixml;VTK::IOChemistry;VTK::IOCesium3DTiles;VTK::IOGeometry;VTK::IOCONVERGECFD;VTK::IOHDF;VTK::IOCGNSReader;VTK::IOAsynchronous;VTK::IOAMR;VTK::InteractionImage;VTK::ImagingStencil;VTK::ImagingStatistics;VTK::ImagingMorphological;VTK::ImagingMath;VTK::ImagingFourier;VTK::IOSQL;VTK::sqlite;VTK::GeovisCore;VTK::InfovisLayout;VTK::ViewsCore;VTK::InteractionWidgets;VTK::RenderingVolume;VTK::RenderingAnnotation;VTK::ImagingHybrid;VTK::ImagingColor;VTK::InteractionStyle;VTK::FiltersTopology;VTK::FiltersSelection;VTK::FiltersSMP;VTK::FiltersProgrammable;VTK::FiltersPoints;VTK::FiltersVerdict;VTK::verdict;VTK::FiltersParallelImaging;VTK::FiltersImaging;VTK::ImagingGeneral;VTK::FiltersGeneric;VTK::FiltersFlowPaths;VTK::eigen;VTK::FiltersAMR;VTK::FiltersParallel;VTK::FiltersTexture;VTK::FiltersModeling;VTK::DomainsChemistryOpenGL2;VTK::RenderingOpenGL2;VTK::RenderingHyperTreeGrid;VTK::RenderingUI;VTK::FiltersHyperTree;VTK::FiltersHybrid;VTK::DomainsChemistry;VTK::ChartsCore;VTK::InfovisCore;VTK::FiltersExtraction;VTK::ParallelDIY;VTK::diy2;VTK::IOXML;VTK::IOXMLParser;VTK::expat;VTK::ParallelCore;VTK::IOLegacy;VTK::IOCore;VTK::doubleconversion;VTK::lz4;VTK::lzma;VTK::FiltersStatistics;VTK::ImagingSources;VTK::IOImage;VTK::DICOMParser;VTK::jpeg;VTK::metaio;VTK::tiff;VTK::RenderingContext2D;VTK::RenderingFreeType;VTK::freetype;VTK::kwiml;VTK::RenderingCore;VTK::FiltersSources;VTK::ImagingCore;VTK::FiltersGeometry;VTK::FiltersGeneral;VTK::CommonComputationalGeometry;VTK::FiltersCore;VTK::CommonExecutionModel;VTK::CommonDataModel;VTK::CommonSystem;VTK::CommonMisc;VTK::exprtk;VTK::CommonTransforms;VTK::CommonMath;VTK::kissfft;VTK::CommonCore
  5. [Generate]を押してソリューションファイルを出力する。

Build

  1. Visual Studioを管理者権限で起動してPCLのソリューションファイル(C:\PCL-1.13.1\build\PCL.sln)を開く。
    (Visual Studioを管理者権限で起動しないとINSTALLが失敗する。)

  2. PCLをビルドする。(ALL_BUILD)

    1. ソリューションの構成(Debug, Release)を設定する。
    2. ソリューションエクスプローラーからALL_BUILDプロジェクトを選択する。
    3. [ビルド]>[ソリューションのビルド]を押してPCLをビルドする。
  3. PCLをインストールする。(INSTALL)

    1. ソリューションエクスプローラーからINSTALLプロジェクトを選択する。
    2. [ビルド]>[プロジェクトのみ]>[INSTALLのみをビルド]を押してPCLをインストールする。
      CMAKE_INSTALL_PREFIXで指定した出力先へ必要なファイルがコピーされる。

Environment Variable

  1. 環境変数PCL_ROOTを作成してPCLのパス(C:\Program Files\PCL)を設定する。

  2. 環境変数PathにPCLと3rdPartyのパスを追加する。

    • ;%PCL_ROOT%\bin
    • ;%PCL_ROOT%\3rdPrty\VTK\bin
    • ;%OPENNI2_REDIST64%

Building PCL 1.14.0 with Visual Studio

Warning

Visual Studio 2022 17.8以降ではstd::binary_functionalgorithmヘッダからfunctionalヘッダに移動しました。
そのため、FLANNのinclude/flann/util/heap.h#L35に以下の修正を加える必要があります。

  #include <algorithm>
+ #include <functional>
  #include <vector>

Download

  1. PCLをGitからクローンする。(C:\pcl-1.14.0)
    https://github.com/PointCloudLibrary/pcl/releases/tag/pcl-1.14.0

  2. 以下の修正を行う。

    • visualization/include/pcl/visualization/vtk/vtkRenderWindowInteractorFix.h#L40-L42(issues#5923
      #include <vtkRenderWindowInteractor.h>
    + #include <pcl/pcl_exports.h>
    
    - vtkRenderWindowInteractor* vtkRenderWindowInteractorFixNew ();
    + PCL_EXPORTS vtkRenderWindowInteractor* vtkRenderWindowInteractorFixNew ();

3rdParty

  1. 3rdPartyのライブラリをビルド、インストールする。

  2. 3rdPartyのライブラリの環境変数を設定する。

    • BOOST_ROOT C:\Program Files\Boost
    • EIGEN_ROOT C:\Program Files\Eigen3
    • FLANN_ROOT C:\Program Files\flann
    • QHULL_ROOT C:\Program Files\qfull
    • VTK_DIR C:\Program Files\VTK

CMake

  1. ソースコードの入力先とソリューションファイルの出力先を指定する。

    • Where is the source code: C:\pcl-1.14.0
    • Where is build the binaries: C:\pcl-1.14.0\build
  2. [Configure]を押してターゲットとなるVisual Studioを選択する。

  3. 各種設定を行う。
    (GroupedとAdvancedにチェックを入れるとわかりやすい。)
    Ungrouped Entries

    • Eigen3_DIR C:/Program Files/Eigen3/share/eigen3/cmake
    • Qhull_DIR C:/Program Files/qhull/lib/cmake/Qhull

    BUILD

    • BUILD_2d ☑(check)
    • BUILD_CUDA ☐(uncheck)
    • BUILD_GPU ☐(uncheck)
    • BUILD_all_in_one_installer ☑(check)*1
    • BUILD_apps ☐(uncheck)
    • BUILD_benchmarks ☐(uncheck)
    • BUILD_common ☑(check)
    • BUILD_example ☐(uncheck)
    • BUILD_features ☑(check)
    • BUILD_filters ☑(check)
    • BUILD_geometry ☑(check)
    • BUILD_global_tests ☐(uncheck)
    • BUILD_io ☑(check)
    • BUILD_kdtree ☑(check)
    • BUILD_keypoints ☑(check)
    • BUILD_ml ☑(check)  
    • BUILD_octree ☑(check)
    • BUILD_outofcore ☑(check)
    • BUILD_people ☑(check)
    • BUILD_recognition ☑(check)
    • BUILD_registration ☑(check)
    • BUILD_sample_consensus ☑(check)
    • BUILD_search ☑(check)
    • BUILD_segmentation ☑(check)
    • BUILD_simulation ☐(uncheck)
    • BUILD_stereo ☑(check)
    • BUILD_surface ☑(check)
    • BUILD_surface_on_nurbs ☑(check)
    • BUILD_tools ☑(check)*2
    • BUILD_tracking ☑(check)
    • BUILD_visualization ☑(check)

    *1 INSTALLプロジェクトをビルドしたとき<CMAKE_INSTALL_PREFIX>(C:\Program Files\PCL)に指定したディレクトリにPCLと3rdPartyがコピーされる。
    *2 ビルドに時間がかかるため、各種ツール類(bin\pcl_*.exe)が必要でなければチェックを外す。

    Boost

    • Boost_DIR C:\Program Files\Boost\lib\cmake\Boost-1.84.0
    • Boost_FILESYSTEM_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_filesystem-vc143-mt-gd-x64-1_84.lib
    • Boost_FILESYSTEM_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_filesystem-vc143-mt-x64-1_84.lib
    • Boost_INCLUDE_DIR C:\Program Files\Boost\include\boost-1_84
    • Boost_IOSTREAMS_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_iostreams-vc143-mt-gd-x64-1_84.lib
    • Boost_IOSTREAMS_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_iostreams-vc143-mt-x64-1_84.lib
    • Boost_MPI_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_mpi-vc143-mt-gd-x64-1_84.lib
    • Boost_MPI_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_mpi-vc143-mt-x64-1_84.lib
    • Boost_SERIALIZATION_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_serialization-vc143-mt-gd-x64-1_84.lib
    • Boost_SERIALIZATION_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_serialization-vc143-mt-x64-1_84.lib
    • Boost_SYSTEM_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_system-vc143-mt-gd-x64-1_84.lib
    • Boost_SYSTEM_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_system-vc143-mt-x64-1_84.lib

    CMAKE

    • CMAKE_CONFIGURATION_TYPES Debug;Release
    • CMAKE_INSTALL_PREFIX C:\Program Files\PCL

    OPENNI2

    • OPENNI2_INCLUDE_DIRS C:\Program Files\OpenNI2\Include
    • OPENNI2_LIBRARY C:\Program Files\OpenNI2\Lib\OpenNI2

    PCL

    • PCL_FLANN_REQUIRED_TYPE STATIC *3
    • PCL_QHULL_REQUIRED_TYPE STATIC *4

    *3 FLANNを静的リンクライブラリでリンクする場合はSTATICを選択する。動的リンクライブラリでリンクする場合はSHAREDを選択する。DONTCAREを選択した場合はPCL_SHARED_LIBSの設定に従う。
    *4 QHullを静的リンクライブラリでリンクする場合はSTATICを選択する。動的リンクライブラリでリンクする場合はSHAREDを選択する。DONTCAREを選択した場合はPCL_SHARED_LIBSの設定に従う。

    VTK

    • VTK_DIR C:\Program Files\VTK\lib\cmake\vtk-9.3

    WITH

    • WITH_CUDA ☐(uncheck)
    • WITH_DAVIDSDK ☐(uncheck)
    • WITH_DOCS ☐(uncheck)
    • WITH_DSSDK ☐(uncheck)
    • WITH_ENSENSO ☐(uncheck)
    • WITH_LIBUSB ☐(uncheck)
    • WITH_OPENGL ☑(check)
    • WITH_OPENMP ☑(check)
    • WITH_OPENNI ☐(uncheck)
    • WITH_OPENNI2 ☑(check)
    • WITH_PCAP ☐(uncheck)
    • WITH_PNG ☐(uncheck)
    • WITH_QHULL ☑(check)
    • WITH_QT NO
    • WITH_RSSDK ☐(uncheck)
    • WITH_RSSDK2 ☐(uncheck)
    • WITH_SYSTEM_ZLIB ☐(uncheck)
    • WITH_VTK ☑(check)

    boost

    • boost_atomic_DIR C:\Program Files\Boost\lib\cmake\boost_atomic-1.84.0
    • boost_bzip2_DIR C:\Program Files\Boost\lib\cmake\boost_bzip2-1.84.0
    • boost_filesystem_DIR C:\Program Files\Boost\lib\cmake\boost_filesystem-1.84.0
    • boost_headers_DIR C:\Program Files\Boost\lib\cmake\boost_headers-1.84.0
    • boost_iostreams_DIR C:\Program Files\Boost\lib\cmake\boost_iostreams-1.84.0
    • boost_mpi_DIR C:\Program Files\Boost\lib\cmake\boost_mpi-1.84.0
    • boost_serialization_DIR C:\Program Files\Boost\lib\cmake\boost_serialization-1.84.0
    • boost_system_DIR C:\Program Files\Boost\lib\cmake\boost_system-1.84.0
    • boost_zlib_DIR C:/Program Files/Boost/lib/cmake/boost_zlib-1.84.0
  4. 設定内容を確認する。

    • FLANN found (include: C:/Program Files/flann/include, lib: C:/Program Files/flann/lib/flann_cpp_s.lib)
    • OpenNI2 found (version: 2.2.0.33, include: C:/Program Files/OpenNI2/Include, lib: C:/Program Files/OpenNI2/Lib/OpenNI2.lib)
    • Found Qhull version 8.0.2
    • VTK version: 9.3.0 VTK rendering backend: OpenGL2 VTK Qt support: NOTFOUND VTK libs: VTK::WrappingTools;VTK::ViewsContext2D;VTK::loguru;VTK::TestingRendering;VTK::TestingCore;VTK::vtksys;VTK::ViewsInfovis;VTK::CommonColor;VTK::RenderingVolumeOpenGL2;VTK::glew;VTK::opengl;VTK::RenderingLabel;VTK::octree;VTK::RenderingLOD;VTK::RenderingLICOpenGL2;VTK::RenderingImage;VTK::RenderingContextOpenGL2;VTK::RenderingCellGrid;VTK::IOVeraOut;VTK::hdf5;VTK::IOTecplotTable;VTK::utf8;VTK::IOSegY;VTK::IOParallelXML;VTK::IOParallel;VTK::jsoncpp;VTK::IOPLY;VTK::IOOggTheora;VTK::theora;VTK::ogg;VTK::IONetCDF;VTK::netcdf;VTK::libproj;VTK::IOMotionFX;VTK::pegtl;VTK::IOMINC;VTK::IOLSDyna;VTK::IOInfovis;VTK::libxml2;VTK::zlib;VTK::IOImport;VTK::IOIOSS;VTK::fmt;VTK::ioss;VTK::cgns;VTK::exodusII;VTK::IOFLUENTCFF;VTK::IOVideo;VTK::IOMovie;VTK::IOExportPDF;VTK::libharu;VTK::IOExportGL2PS;VTK::RenderingGL2PSOpenGL2;VTK::gl2ps;VTK::png;VTK::IOExport;VTK::RenderingVtkJS;VTK::nlohmannjson;VTK::RenderingSceneGraph;VTK::IOExodus;VTK::IOEnSight;VTK::IOCityGML;VTK::pugixml;VTK::IOChemistry;VTK::IOCesium3DTiles;VTK::IOGeometry;VTK::IOCellGrid;VTK::IOCONVERGECFD;VTK::IOHDF;VTK::IOCGNSReader;VTK::IOAsynchronous;VTK::IOAMR;VTK::InteractionImage;VTK::ImagingStencil;VTK::ImagingStatistics;VTK::ImagingMorphological;VTK::ImagingMath;VTK::ImagingFourier;VTK::IOSQL;VTK::sqlite;VTK::GeovisCore;VTK::InfovisLayout;VTK::ViewsCore;VTK::InteractionWidgets;VTK::RenderingVolume;VTK::RenderingAnnotation;VTK::ImagingHybrid;VTK::ImagingColor;VTK::InteractionStyle;VTK::FiltersTopology;VTK::FiltersTensor;VTK::FiltersSelection;VTK::FiltersSMP;VTK::FiltersReduction;VTK::FiltersProgrammable;VTK::FiltersPoints;VTK::FiltersParallelImaging;VTK::FiltersImaging;VTK::ImagingGeneral;VTK::FiltersGeometryPreview;VTK::FiltersGeneric;VTK::FiltersFlowPaths;VTK::eigen;VTK::FiltersCellGrid;VTK::FiltersAMR;VTK::FiltersParallel;VTK::FiltersTexture;VTK::FiltersModeling;VTK::DomainsChemistryOpenGL2;VTK::RenderingOpenGL2;VTK::RenderingHyperTreeGrid;VTK::RenderingUI;VTK::FiltersHybrid;VTK::DomainsChemistry;VTK::ChartsCore;VTK::InfovisCore;VTK::FiltersExtraction;VTK::ParallelDIY;VTK::diy2;VTK::IOXML;VTK::IOXMLParser;VTK::expat;VTK::ParallelCore;VTK::IOLegacy;VTK::IOCore;VTK::doubleconversion;VTK::lz4;VTK::lzma;VTK::fast_float;VTK::FiltersStatistics;VTK::FiltersHyperTree;VTK::ImagingSources;VTK::IOImage;VTK::DICOMParser;VTK::jpeg;VTK::metaio;VTK::tiff;VTK::RenderingContext2D;VTK::RenderingFreeType;VTK::freetype;VTK::kwiml;VTK::RenderingCore;VTK::FiltersSources;VTK::ImagingCore;VTK::FiltersGeneral;VTK::FiltersVerdict;VTK::verdict;VTK::FiltersGeometry;VTK::CommonComputationalGeometry;VTK::FiltersCore;VTK::CommonExecutionModel;VTK::CommonDataModel;VTK::CommonSystem;VTK::CommonMisc;VTK::exprtk;VTK::CommonTransforms;VTK::CommonMath;VTK::kissfft;VTK::CommonCore
  5. [Generate]を押してソリューションファイルを出力する。

Build

  1. Visual Studioを管理者権限で起動してPCLのソリューションファイル(C:\pcl-1.14.0\build\PCL.sln)を開く。
    (Visual Studioを管理者権限で起動しないとINSTALLが失敗する。)

  2. PCLをビルドする。(ALL_BUILD)

    1. ソリューションの構成(Debug, Release)を設定する。
    2. ソリューションエクスプローラーからALL_BUILDプロジェクトを選択する。
    3. [ビルド]>[ソリューションのビルド]を押してPCLをビルドする。
  3. PCLをインストールする。(INSTALL)

    1. ソリューションエクスプローラーからINSTALLプロジェクトを選択する。
    2. [ビルド]>[プロジェクトのみ]>[INSTALLのみをビルド]を押してPCLをインストールする。
      CMAKE_INSTALL_PREFIXで指定した出力先へ必要なファイルがコピーされる。

Environment Variable

  1. 環境変数PCL_ROOTを作成してPCLのパス(C:\Program Files\PCL)を設定する。

  2. 環境変数PathにPCLと3rdPartyのパスを追加する。

    • ;%PCL_ROOT%\bin
    • ;%PCL_ROOT%\3rdPrty\VTK\bin
    • ;%OPENNI2_REDIST64%

Building PCL 1.14.1 with Visual Studio

Warning

Visual Studio 2022 17.8以降ではstd::binary_functionalgorithmヘッダからfunctionalヘッダに移動しました。
そのため、FLANNのinclude/flann/util/heap.h#L35に以下の修正を加える必要があります。

  #include <algorithm>
+ #include <functional>
  #include <vector>

Download

  1. PCLをGitからクローンする。(C:\pcl-1.14.1)
    https://github.com/PointCloudLibrary/pcl/releases/tag/pcl-1.14.1

3rdParty

  1. 3rdPartyのライブラリをビルド、インストールする。

  2. 3rdPartyのライブラリの環境変数を設定する。

    • BOOST_ROOT C:\Program Files\Boost
    • EIGEN_ROOT C:\Program Files\Eigen3
    • FLANN_ROOT C:\Program Files\flann
    • QHULL_ROOT C:\Program Files\qfull
    • VTK_DIR C:\Program Files\VTK

CMake

  1. ソースコードの入力先とソリューションファイルの出力先を指定する。

    • Where is the source code: C:\pcl-1.14.1
    • Where is build the binaries: C:\pcl-1.14.1build
  2. [Configure]を押してターゲットとなるVisual Studioを選択する。

  3. 各種設定を行う。
    (GroupedとAdvancedにチェックを入れるとわかりやすい。)
    Ungrouped Entries

    • Eigen3_DIR C:/Program Files/Eigen3/share/eigen3/cmake
    • Qhull_DIR C:/Program Files/qhull/lib/cmake/Qhull

    BUILD

    • BUILD_2d ☑(check)
    • BUILD_CUDA ☐(uncheck)
    • BUILD_GPU ☐(uncheck)
    • BUILD_all_in_one_installer ☑(check)*1
    • BUILD_apps ☐(uncheck)
    • BUILD_benchmarks ☐(uncheck)
    • BUILD_common ☑(check)
    • BUILD_example ☐(uncheck)
    • BUILD_features ☑(check)
    • BUILD_filters ☑(check)
    • BUILD_geometry ☑(check)
    • BUILD_global_tests ☐(uncheck)
    • BUILD_io ☑(check)
    • BUILD_kdtree ☑(check)
    • BUILD_keypoints ☑(check)
    • BUILD_ml ☑(check)  
    • BUILD_octree ☑(check)
    • BUILD_outofcore ☑(check)
    • BUILD_people ☑(check)
    • BUILD_recognition ☑(check)
    • BUILD_registration ☑(check)
    • BUILD_sample_consensus ☑(check)
    • BUILD_search ☑(check)
    • BUILD_segmentation ☑(check)
    • BUILD_simulation ☐(uncheck)
    • BUILD_stereo ☑(check)
    • BUILD_surface ☑(check)
    • BUILD_surface_on_nurbs ☑(check)
    • BUILD_tools ☑(check)*2
    • BUILD_tracking ☑(check)
    • BUILD_visualization ☑(check)

    *1 INSTALLプロジェクトをビルドしたとき<CMAKE_INSTALL_PREFIX>(C:\Program Files\PCL)に指定したディレクトリにPCLと3rdPartyがコピーされる。
    *2 ビルドに時間がかかるため、各種ツール類(bin\pcl_*.exe)が必要でなければチェックを外す。

    Boost

    • Boost_DIR C:\Program Files\Boost\lib\cmake\Boost-1.84.0
    • Boost_FILESYSTEM_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_filesystem-vc143-mt-gd-x64-1_84.lib
    • Boost_FILESYSTEM_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_filesystem-vc143-mt-x64-1_84.lib
    • Boost_INCLUDE_DIR C:\Program Files\Boost\include\boost-1_84
    • Boost_IOSTREAMS_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_iostreams-vc143-mt-gd-x64-1_84.lib
    • Boost_IOSTREAMS_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_iostreams-vc143-mt-x64-1_84.lib
    • Boost_MPI_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_mpi-vc143-mt-gd-x64-1_84.lib
    • Boost_MPI_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_mpi-vc143-mt-x64-1_84.lib
    • Boost_SERIALIZATION_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_serialization-vc143-mt-gd-x64-1_84.lib
    • Boost_SERIALIZATION_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_serialization-vc143-mt-x64-1_84.lib
    • Boost_SYSTEM_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_system-vc143-mt-gd-x64-1_84.lib
    • Boost_SYSTEM_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_system-vc143-mt-x64-1_84.lib

    CMAKE

    • CMAKE_CONFIGURATION_TYPES Debug;Release
    • CMAKE_INSTALL_PREFIX C:\Program Files\PCL

    OPENNI2

    • OPENNI2_INCLUDE_DIRS C:\Program Files\OpenNI2\Include
    • OPENNI2_LIBRARY C:\Program Files\OpenNI2\Lib\OpenNI2

    PCL

    • PCL_FLANN_REQUIRED_TYPE STATIC *3
    • PCL_QHULL_REQUIRED_TYPE STATIC *4

    *3 FLANNを静的リンクライブラリでリンクする場合はSTATICを選択する。動的リンクライブラリでリンクする場合はSHAREDを選択する。DONTCAREを選択した場合はPCL_SHARED_LIBSの設定に従う。
    *4 QHullを静的リンクライブラリでリンクする場合はSTATICを選択する。動的リンクライブラリでリンクする場合はSHAREDを選択する。DONTCAREを選択した場合はPCL_SHARED_LIBSの設定に従う。

    VTK

    • VTK_DIR C:\Program Files\VTK\lib\cmake\vtk-9.3

    WITH

    • WITH_CUDA ☐(uncheck)
    • WITH_DAVIDSDK ☐(uncheck)
    • WITH_DOCS ☐(uncheck)
    • WITH_DSSDK ☐(uncheck)
    • WITH_ENSENSO ☐(uncheck)
    • WITH_LIBUSB ☐(uncheck)
    • WITH_OPENGL ☑(check)
    • WITH_OPENMP ☑(check)
    • WITH_OPENNI ☐(uncheck)
    • WITH_OPENNI2 ☑(check)
    • WITH_PCAP ☐(uncheck)
    • WITH_PNG ☐(uncheck)
    • WITH_QHULL ☑(check)
    • WITH_QT NO
    • WITH_RSSDK ☐(uncheck)
    • WITH_RSSDK2 ☐(uncheck)
    • WITH_SYSTEM_ZLIB ☐(uncheck)
    • WITH_VTK ☑(check)

    boost

    • boost_atomic_DIR C:\Program Files\Boost\lib\cmake\boost_atomic-1.84.0
    • boost_bzip2_DIR C:\Program Files\Boost\lib\cmake\boost_bzip2-1.84.0
    • boost_filesystem_DIR C:\Program Files\Boost\lib\cmake\boost_filesystem-1.84.0
    • boost_headers_DIR C:\Program Files\Boost\lib\cmake\boost_headers-1.84.0
    • boost_iostreams_DIR C:\Program Files\Boost\lib\cmake\boost_iostreams-1.84.0
    • boost_mpi_DIR C:\Program Files\Boost\lib\cmake\boost_mpi-1.84.0
    • boost_serialization_DIR C:\Program Files\Boost\lib\cmake\boost_serialization-1.84.0
    • boost_system_DIR C:\Program Files\Boost\lib\cmake\boost_system-1.84.0
    • boost_zlib_DIR C:/Program Files/Boost/lib/cmake/boost_zlib-1.84.0
  4. 設定内容を確認する。

    • FLANN found (include: C:/Program Files/flann/include, lib: C:/Program Files/flann/lib/flann_cpp_s.lib)
    • OpenNI2 found (version: 2.2.0.33, include: C:/Program Files/OpenNI2/Include, lib: C:/Program Files/OpenNI2/Lib/OpenNI2.lib)
    • Found Qhull version 8.0.2
    • VTK version: 9.3.0 VTK rendering backend: OpenGL2 VTK Qt support: NOTFOUND VTK libs: VTK::WrappingTools;VTK::ViewsContext2D;VTK::loguru;VTK::TestingRendering;VTK::TestingCore;VTK::vtksys;VTK::ViewsInfovis;VTK::CommonColor;VTK::RenderingVolumeOpenGL2;VTK::glew;VTK::opengl;VTK::RenderingLabel;VTK::octree;VTK::RenderingLOD;VTK::RenderingLICOpenGL2;VTK::RenderingImage;VTK::RenderingContextOpenGL2;VTK::RenderingCellGrid;VTK::IOVeraOut;VTK::hdf5;VTK::IOTecplotTable;VTK::utf8;VTK::IOSegY;VTK::IOParallelXML;VTK::IOParallel;VTK::jsoncpp;VTK::IOPLY;VTK::IOOggTheora;VTK::theora;VTK::ogg;VTK::IONetCDF;VTK::netcdf;VTK::libproj;VTK::IOMotionFX;VTK::pegtl;VTK::IOMINC;VTK::IOLSDyna;VTK::IOInfovis;VTK::libxml2;VTK::zlib;VTK::IOImport;VTK::IOIOSS;VTK::fmt;VTK::ioss;VTK::cgns;VTK::exodusII;VTK::IOFLUENTCFF;VTK::IOVideo;VTK::IOMovie;VTK::IOExportPDF;VTK::libharu;VTK::IOExportGL2PS;VTK::RenderingGL2PSOpenGL2;VTK::gl2ps;VTK::png;VTK::IOExport;VTK::RenderingVtkJS;VTK::nlohmannjson;VTK::RenderingSceneGraph;VTK::IOExodus;VTK::IOEnSight;VTK::IOCityGML;VTK::pugixml;VTK::IOChemistry;VTK::IOCesium3DTiles;VTK::IOGeometry;VTK::IOCellGrid;VTK::IOCONVERGECFD;VTK::IOHDF;VTK::IOCGNSReader;VTK::IOAsynchronous;VTK::IOAMR;VTK::InteractionImage;VTK::ImagingStencil;VTK::ImagingStatistics;VTK::ImagingMorphological;VTK::ImagingMath;VTK::ImagingFourier;VTK::IOSQL;VTK::sqlite;VTK::GeovisCore;VTK::InfovisLayout;VTK::ViewsCore;VTK::InteractionWidgets;VTK::RenderingVolume;VTK::RenderingAnnotation;VTK::ImagingHybrid;VTK::ImagingColor;VTK::InteractionStyle;VTK::FiltersTopology;VTK::FiltersTensor;VTK::FiltersSelection;VTK::FiltersSMP;VTK::FiltersReduction;VTK::FiltersProgrammable;VTK::FiltersPoints;VTK::FiltersParallelImaging;VTK::FiltersImaging;VTK::ImagingGeneral;VTK::FiltersGeometryPreview;VTK::FiltersGeneric;VTK::FiltersFlowPaths;VTK::eigen;VTK::FiltersCellGrid;VTK::FiltersAMR;VTK::FiltersParallel;VTK::FiltersTexture;VTK::FiltersModeling;VTK::DomainsChemistryOpenGL2;VTK::RenderingOpenGL2;VTK::RenderingHyperTreeGrid;VTK::RenderingUI;VTK::FiltersHybrid;VTK::DomainsChemistry;VTK::ChartsCore;VTK::InfovisCore;VTK::FiltersExtraction;VTK::ParallelDIY;VTK::diy2;VTK::IOXML;VTK::IOXMLParser;VTK::expat;VTK::ParallelCore;VTK::IOLegacy;VTK::IOCore;VTK::doubleconversion;VTK::lz4;VTK::lzma;VTK::fast_float;VTK::FiltersStatistics;VTK::FiltersHyperTree;VTK::ImagingSources;VTK::IOImage;VTK::DICOMParser;VTK::jpeg;VTK::metaio;VTK::tiff;VTK::RenderingContext2D;VTK::RenderingFreeType;VTK::freetype;VTK::kwiml;VTK::RenderingCore;VTK::FiltersSources;VTK::ImagingCore;VTK::FiltersGeneral;VTK::FiltersVerdict;VTK::verdict;VTK::FiltersGeometry;VTK::CommonComputationalGeometry;VTK::FiltersCore;VTK::CommonExecutionModel;VTK::CommonDataModel;VTK::CommonSystem;VTK::CommonMisc;VTK::exprtk;VTK::CommonTransforms;VTK::CommonMath;VTK::kissfft;VTK::CommonCore
  5. [Generate]を押してソリューションファイルを出力する。

Build

  1. Visual Studioを管理者権限で起動してPCLのソリューションファイル(C:\pcl-1.14.1\build\PCL.sln)を開く。
    (Visual Studioを管理者権限で起動しないとINSTALLが失敗する。)

  2. PCLをビルドする。(ALL_BUILD)

    1. ソリューションの構成(Debug, Release)を設定する。
    2. ソリューションエクスプローラーからALL_BUILDプロジェクトを選択する。
    3. [ビルド]>[ソリューションのビルド]を押してPCLをビルドする。
  3. PCLをインストールする。(INSTALL)

    1. ソリューションエクスプローラーからINSTALLプロジェクトを選択する。
    2. [ビルド]>[プロジェクトのみ]>[INSTALLのみをビルド]を押してPCLをインストールする。
      CMAKE_INSTALL_PREFIXで指定した出力先へ必要なファイルがコピーされる。

Environment Variable

  1. 環境変数PCL_ROOTを作成してPCLのパス(C:\Program Files\PCL)を設定する。

  2. 環境変数PathにPCLと3rdPartyのパスを追加する。

    • ;%PCL_ROOT%\bin
    • ;%PCL_ROOT%\3rdPrty\VTK\bin
    • ;%OPENNI2_REDIST64%

Building PCL 1.7.2 with Visual Studio

Download

  1. PCLをGitからクローンする。(C:\PCL-1.7.2)
    https://github.com/PointCloudLibrary/pcl/tree/pcl-1.7.2

3rdParty

  1. 3rdPartyのライブラリをビルド、インストールする。

  2. 3rdPartyのライブラリの環境変数を設定する。

    • BOOST_ROOT C:\Program Files\Boost
    • EIGEN_ROOT C:\Program Files\Eigen
    • FLANN_ROOT C:\Program Files\flann
    • QHULL_ROOT C:\Program Files\qfull
    • VTK_DIR C:\Program Files\VTK

CMake

  1. CMake 3.0.2より新しいバージョンを利用する場合、以下を修正する。 https://github.com/PointCloudLibrary/pcl/commit/f9c0d73a0536e85c06432732d19e38349a785ad4

  2. ソースコードの入力先とソリューションファイルの出力先を指定する。

    • Where is the source code: C:\PCL-master
    • Where is build the binaries: C:\PCL-master\build
  3. [Configure]を押してターゲットとなるVisual Studioを選択する。

  4. 各種設定を行う。
    (GroupedとAdvancedにチェックを入れるとわかりやすい。)
    Ungrouped Entries

    • EIGEN_INCLUDE_DIR C:\Program Files\Eigen\include\eigen3
    • VTK_DIR C:\Program Files\VTK\lib\cmake\vtk-6.1

    BUILD

    • BUILD_OPENNI ☐(uncheck)
    • BUILD_OPENNI2 ☐(uncheck)
    • BUILD_all_in_one_installer ☐(uncheck)
    • BUILD_apps ☐(uncheck)
    • BUILD_common ☑(check)
    • BUILD_example ☐(uncheck)
    • BUILD_features ☑(check)
    • BUILD_filters ☑(check)
    • BUILD_geometry ☑(check)
    • BUILD_global_tests ☐(uncheck)
    • BUILD_io ☑(check)
    • BUILD_kdtree ☑(check)
    • BUILD_keypoints ☑(check)
    • BUILD_outofcore ☑(check)
    • BUILD_people ☑(check)
    • BUILD_recognition ☑(check)
    • BUILD_registration ☑(check)
    • BUILD_sample_consensus ☑(check)
    • BUILD_search ☑(check)
    • BUILD_segmentation ☑(check)
    • BUILD_surface ☑(check)
    • BUILD_surface_on_nurbs ☑(check)
    • BUILD_tools ☑(check)
    • BUILD_tracking ☑(check)
    • BUILD_visualization ☑(check)

    Boost

    • Boost_DATE_TIME_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_date_time-vc120-mt-gd-1_56.lib
    • Boost_DATE_TIME_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_date_time-vc120-mt-1_56.lib
    • Boost_FILESYSTEM_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_filesystem-vc120-mt-gd-1_56.lib
    • Boost_FILESYSTEM_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_filesystem-vc120-mt-1_56.lib
    • Boost_INCLUDE_DIR C:\Program Files\Boost\include\boost-1_56
    • Boost_IOSTREAMS_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_iostreams-vc120-mt-gd-1_56.lib
    • Boost_IOSTREAMS_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_iostreams-vc120-mt-1_56.lib
    • Boost_MPI_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_mpi-vc120-mt-gd-1_56.lib
    • Boost_MPI_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_mpi-vc120-mt-1_56.lib
    • Boost_SERIALIZATION_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_serialization-vc120-mt-gd-1_56.lib
    • Boost_SERIALIZATION_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_serialization-vc120-mt-1_56.lib
    • Boost_SYSTEM_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_system-vc120-mt-gd-1_56.lib
    • Boost_SYSTEM_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_system-vc120-mt-1_56.lib
    • Boost_THREAD_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_thread-vc120-mt-gd-1_56.lib
    • Boost_THREAD_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_thread-vc120-mt-1_56.lib

    CMAKE

    • CMAKE_CONFIGURATION_TYPES Debug;Release
    • CMAKE_INSTALL_PREFIX C:\Program Files\PCL

    FLANN

    • FLANN_INCLUDE_DIR C:\Program Files\flann\include
    • FLANN_LIBRARY C:\Program Files\flann\lib\flann_cpp_s.lib
    • FLANN_LIBRARY_DEBUG C:\Program Files\flann\lib\flann_cpp_s-gd.lib

    QHULL

    • QHULL_INCLUDE_DIR C:\Program Files\qhull\include
    • QHULL_LIBRARY C:\Program Files\qhull\lib\qhullstatic.lib
    • QHULL_LIBRARY_DEBUG C:\Program Files\qhull\lib\qhullstatic_d.lib

    WITH

    • WITH_DOCS ☐(uncheck)
    • WITH_FZAPI ☐(uncheck)
    • WITH_LIBUSB ☐(uncheck)
    • WITH_OPENNI ☐(uncheck)
    • WITH_OPENNI2 ☐(uncheck)
    • WITH_PCAP ☐(uncheck)
    • WITH_PNG ☐(uncheck)
    • WITH_PXCAPI ☐(uncheck)
    • WITH_QHULL ☑(check)
    • WITH_QT ☐(uncheck)
    • WITH_VTK ☑(check)
  5. 設定内容を確認する。

    • Boost version: 1.56.0
      Found the following Boost libraries:
      system
      filesystem
      thread
      date_time
      iostreams
      chrono
    • Eigen found (include: C:/Program Files/Eigen/include/eigen3, version: 3.2.2)
    • FLANN found (include: C:/Program Files/flann/include, lib: optimized;C:/Program Files/flann/lib/flann_cpp_s.lib;debug;C:/Program Files/flann/lib/flann_cpp_s-gd.lib)
    • QHULL found (include: C:/Program Files/qhull/include, lib: optimized;C:/Program Files/qhull/lib/qhullstatic.lib;debug;C:/Program Files/qhull/lib/qhullstatic_d.lib)
    • VTK_MAJOR_VERSION 6
      VTK found (include: C:/Program Files/VTK/include/vtk-6.1, lib: vtkalglib;vtkChartsCore;vtkCommonColor;vtkCommonDataModel;vtkCommonMath;vtkCommonCore;vtksys;vtkCommonMisc;vtkCommonSystem;vtkCommonTransforms;vtkInfovisCore;vtkFiltersExtraction;vtkCommonExecutionModel;vtkFiltersCore;vtkFiltersGeneral;vtkCommonComputationalGeometry;vtkFiltersStatistics;vtkImagingFourier;vtkImagingCore;vtkRenderingContext2D;vtkRenderingCore;vtkFiltersGeometry;vtkFiltersSources;vtkRenderingFreeType;vtkfreetype;vtkzlib;vtkftgl;vtkRenderingOpenGL;vtkImagingHybrid;vtkIOImage;vtkDICOMParser;vtkIOCore;vtkmetaio;vtkjpeg;vtkpng;vtktiff;vtkDomainsChemistry;vtkIOXML;vtkIOGeometry;vtkjsoncpp;vtkIOXMLParser;vtkexpat;vtkexoIIc;vtkNetCDF;vtkNetCDF_cxx;vtkhdf5_hl;vtkhdf5;vtkFiltersAMR;vtkParallelCore;vtkIOLegacy;vtkFiltersFlowPaths;vtkFiltersGeneric;vtkFiltersHybrid;vtkImagingSources;vtkFiltersHyperTree;vtkFiltersImaging;vtkImagingGeneral;vtkFiltersModeling;vtkFiltersParallel;vtkFiltersParallelImaging;vtkFiltersProgrammable;vtkFiltersSelection;vtkFiltersSMP;vtkFiltersTexture;vtkFiltersVerdict;verdict;vtkGeovisCore;vtkInfovisLayout;vtkInteractionStyle;vtkInteractionWidgets;vtkRenderingAnnotation;vtkImagingColor;vtkRenderingVolume;vtkViewsCore;vtkproj4;vtkgl2ps;vtkImagingMath;vtkImagingMorphological;vtkImagingStatistics;vtkImagingStencil;vtkInteractionImage;vtkIOAMR;vtkIOEnSight;vtkIOExodus;vtkIOExport;vtkRenderingGL2PS;vtkRenderingLabel;vtkIOImport;vtkIOInfovis;vtklibxml2;vtkIOLSDyna;vtkIOMINC;vtkIOMovie;vtkoggtheora;vtkIONetCDF;vtkIOParallel;vtkIOPLY;vtkIOSQL;vtksqlite;vtkIOVideo;vtkRenderingFreeTypeOpenGL;vtkRenderingImage;vtkRenderingLIC;vtkRenderingLOD;vtkRenderingVolumeAMR;vtkRenderingVolumeOpenGL;vtkViewsContext2D;vtkViewsGeovis;vtkViewsInfovis)
  6. [Generate]を押してソリューションファイルを出力する。

Build

  1. Visual Studioを管理者権限で起動してPCLのソリューションファイル(C:\PCL-master\build\PCL.sln)を開く。
    (Visual Studioを管理者権限で起動しないとINSTALLが失敗する。)

  2. PCLをビルドする。(ALL_BUILD)

    1. ソリューションの構成(Debug, Release)を設定する。
    2. ソリューションエクスプローラーからALL_BUILDプロジェクトを選択する。
    3. [ビルド]>[ソリューションのビルド]を押してPCLをビルドする。
  3. PCLをインストールする。(INSTALL)

    1. インストール設定ファイルを修正する。

      • PCL-master\build\cmake_install.cmake
        46 line

        file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/3rdParty/Boost" TYPE DIRECTORY FILES "C:/Program Files/Boost/" REGEX "/[^/]*\\/uninstall\\.exe$" EXCLUDE)  

        58 line

        file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/3rdParty/VTK" TYPE DIRECTORY FILES "C:/Program Files/VTK/" REGEX "/[^/]*\\/uninstall\\.exe$" EXCLUDE)
    2. ソリューションエクスプローラーからINSTALLプロジェクトを選択する。

    3. [ビルド]>[プロジェクトのみ]>[INSTALLのみをビルド]を押してPCLをインストールする。
      CMAKE_INSTALL_PREFIXで指定した出力先へ必要なファイルがコピーされる。

Environment Variable

  1. 環境変数PCL_ROOTを作成してPCLのパス(C:\Program Files\PCL)を設定する。

  2. 環境変数PathにPCLと3rdPartyのパスを追加する。

    • ;%PCL_ROOT%\bin
    • ;%PCL_ROOT%\3rdParty\FLANN\bin
    • ;%PCL_ROOT%\3rdParty\VTK\bin

Building PCL 1.8.0 with Visual Studio

Download

  1. PCLをGitからクローンする。(C:\PCL-1.8.0)
    https://github.com/PointCloudLibrary/pcl/tree/pcl-1.8.0

  2. 以下の変更を適用する。(Pull Request #1635)
    Fix compile error C2440 of pcl_visualization on MSVC #1635 | Point Cloud Library

3rdParty

  1. 3rdPartyのライブラリをビルド、インストールする。

  2. 3rdPartyのライブラリの環境変数を設定する。

    • BOOST_ROOT C:\Program Files\Boost
    • EIGEN_ROOT C:\Program Files\Eigen
    • FLANN_ROOT C:\Program Files\flann
    • QHULL_ROOT C:\Program Files\qfull
    • VTK_DIR C:\Program Files\VTK

CMake

  1. ソースコードの入力先とソリューションファイルの出力先を指定する。

    • Where is the source code: C:\PCL-1.8.0
    • Where is build the binaries: C:\PCL-1.8.0\build
  2. [Configure]を押してターゲットとなるVisual Studioを選択する。

  3. 各種設定を行う。
    (GroupedとAdvancedにチェックを入れるとわかりやすい。)
    Ungrouped Entries

    • EIGEN_INCLUDE_DIR C:\Program Files\Eigen\include\eigen3
    • VTK_DIR C:\Program Files\VTK\lib\cmake\vtk-7.0

    BUILD

    • BUILD_2d ☑(check)
    • BUILD_CUDA ☐(uncheck)
    • BUILD_GPU ☐(uncheck)
    • BUILD_all_in_one_installer ☑(check)*1
    • BUILD_apps ☐(uncheck)
    • BUILD_common ☑(check)
    • BUILD_example ☐(uncheck)
    • BUILD_features ☑(check)
    • BUILD_filters ☑(check)
    • BUILD_geometry ☑(check)
    • BUILD_global_tests ☐(uncheck)
    • BUILD_io ☑(check)
    • BUILD_kdtree ☑(check)
    • BUILD_keypoints ☑(check)
    • BUILD_octree ☑(check)
    • BUILD_outofcore ☑(check)
    • BUILD_people ☑(check)
    • BUILD_recognition ☑(check)
    • BUILD_registration ☑(check)
    • BUILD_sample_consensus ☑(check)
    • BUILD_search ☑(check)
    • BUILD_segmentation ☑(check)
    • BUILD_simulation ☐(uncheck)
    • BUILD_stereo ☑(check)
    • BUILD_surface ☑(check)
    • BUILD_surface_on_nurbs ☑(check)
    • BUILD_tools ☑(check)*2
    • BUILD_tracking ☑(check)
    • BUILD_visualization ☑(check)

    *1 INSTALLプロジェクトをビルドしたとき<CMAKE_INSTALL_PREFIX>(C:\Program Files\PCL)に指定したディレクトリにPCLと3rdPartyがコピーされる。
    *2 ビルドに時間がかかるため、各種ツール類(bin\pcl_*.exe)が必要でなければチェックを外す。

    Boost

    • Boost_DATE_TIME_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_date_time-vc140-mt-gd-1_61.lib
    • Boost_DATE_TIME_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_date_time-vc140-mt-1_61.lib
    • Boost_FILESYSTEM_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_filesystem-vc140-mt-gd-1_61.lib
    • Boost_FILESYSTEM_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_filesystem-vc140-mt-1_61.lib
    • Boost_INCLUDE_DIR C:\Program Files\Boost\include\boost-1_61
    • Boost_IOSTREAMS_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_iostreams-vc140-mt-gd-1_61.lib
    • Boost_IOSTREAMS_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_iostreams-vc140-mt-1_61.lib
    • Boost_LIBRARY_DIR_DEBUG C:\Program Files\Boost\lib
    • Boost_LIBRARY_DIR_RELEASE C:\Program Files\Boost\lib
    • Boost_MPI_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_mpi-vc140-mt-gd-1_61.lib
    • Boost_MPI_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_mpi-vc140-mt-1_61.lib
    • Boost_SERIALIZATION_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_serialization-vc140-mt-gd-1_61.lib
    • Boost_SERIALIZATION_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_serialization-vc140-mt-1_61.lib
    • Boost_SYSTEM_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_system-vc140-mt-gd-1_61.lib
    • Boost_SYSTEM_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_system-vc140-mt-1_61.lib
    • Boost_THREAD_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_thread-vc140-mt-gd-1_61.lib
    • Boost_THREAD_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_thread-vc140-mt-1_61.lib

    CMAKE

    • CMAKE_CONFIGURATION_TYPES Debug;Release
    • CMAKE_INSTALL_PREFIX C:\Program Files\PCL

    FLANN

    • FLANN_INCLUDE_DIR C:\Program Files\flann\include
    • FLANN_LIBRARY C:\Program Files\flann\lib\flann_cpp_s.lib
    • FLANN_LIBRARY_DEBUG C:\Program Files\flann\lib\flann_cpp_s-gd.lib

    OPENNI2

    • OPENNI2_INCLUDE_DIRS C:\Program Files\OpenNI2\Include
    • OPENNI2_LIBRARY C:\Program Files\OpenNI2\Lib\OpenNI2

    QHULL

    • QHULL_INCLUDE_DIR C:\Program Files\qhull\include
    • QHULL_LIBRARY C:\Program Files\qhull\lib\qhullstatic.lib
    • QHULL_LIBRARY_DEBUG C:\Program Files\qhull\lib\qhullstatic_d.lib

    WITH

    • WITH_CUDA ☐(uncheck)
    • WITH_DAVIDSDK ☐(uncheck)
    • WITH_DOCS ☐(uncheck)
    • WITH_DSSDK ☐(uncheck)
    • WITH_ENSENSO ☐(uncheck)
    • WITH_FZAPI ☐(uncheck)
    • WITH_LIBUSB ☐(uncheck)
    • WITH_OPENGL ☑(check)
    • WITH_OPENNI ☐(uncheck)
    • WITH_OPENNI2 ☑(check)
    • WITH_PCAP ☐(uncheck)
    • WITH_PNG ☐(uncheck)
    • WITH_QHULL ☑(check)
    • WITH_QT ☐(uncheck)
    • WITH_RSSDK ☐(uncheck)
    • WITH_VTK ☑(check)
  4. 設定内容を確認する。

    • Boost version: 1.61.0
      Found the following Boost libraries:
      system
      filesystem
      thread
      date_time
      iostreams
      chrono
      atomic
      regex
    • Eigen found (include: C:/Program Files/Eigen/include/eigen3, version: 3.2.8)
    • FLANN found (include: C:/Program Files/flann/include, lib: optimized;C:/Program Files/flann/lib/flann_cpp_s.lib;debug;C:/Program Files/flann/lib/flann_cpp_s-gd.lib)
    • QHULL found (include: C:/Program Files/qhull/include, lib: optimized;C:/Program Files/qhull/lib/qhullstatic.lib;debug;C:/Program Files/qhull/lib/qhullstatic_d.lib)
    • VTK_MAJOR_VERSION 7, rendering backend: OpenGL
      VTK found (include: C:/Program Files/VTK/include/vtk-7.0, lib: vtkalglib;vtkChartsCore;vtkCommonColor;vtkCommonDataModel;vtkCommonMath;vtkCommonCore;vtksys;vtkCommonMisc;vtkCommonSystem;vtkCommonTransforms;vtkInfovisCore;vtkFiltersExtraction;vtkCommonExecutionModel;vtkFiltersCore;vtkFiltersGeneral;vtkCommonComputationalGeometry;vtkFiltersStatistics;vtkImagingFourier;vtkImagingCore;vtkRenderingContext2D;vtkRenderingCore;vtkFiltersGeometry;vtkFiltersSources;vtkRenderingFreeType;vtkfreetype;vtkzlib;vtkDICOMParser;vtkDomainsChemistry;vtkIOXML;vtkIOGeometry;vtkIOCore;vtkIOXMLParser;vtkexpat;vtkexoIIc;vtkNetCDF;vtkNetCDF_cxx;vtkhdf5_hl;vtkhdf5;vtkFiltersAMR;vtkParallelCore;vtkIOLegacy;vtkFiltersFlowPaths;vtkFiltersGeneric;vtkFiltersHybrid;vtkImagingSources;vtkFiltersHyperTree;vtkFiltersImaging;vtkImagingGeneral;vtkFiltersModeling;vtkFiltersParallel;vtkFiltersParallelImaging;vtkFiltersProgrammable;vtkFiltersSelection;vtkFiltersSMP;vtkFiltersTexture;vtkFiltersVerdict;verdict;vtkGeovisCore;vtkInfovisLayout;vtkImagingHybrid;vtkIOImage;vtkmetaio;vtkjpeg;vtkpng;vtktiff;vtkInteractionStyle;vtkInteractionWidgets;vtkRenderingAnnotation;vtkImagingColor;vtkRenderingVolume;vtkViewsCore;vtkproj4;vtkgl2ps;vtkImagingMath;vtkImagingMorphological;vtkImagingStatistics;vtkImagingStencil;vtkInteractionImage;vtkIOAMR;vtkIOEnSight;vtkIOExodus;vtkIOExport;vtkRenderingGL2PS;vtkRenderingContextOpenGL;vtkRenderingOpenGL;vtkRenderingLabel;vtkIOImport;vtkIOInfovis;vtklibxml2;vtkIOLSDyna;vtkIOMINC;vtkIOMovie;vtkoggtheora;vtkIONetCDF;vtkIOParallel;vtkjsoncpp;vtkIOParallelXML;vtkIOPLY;vtkIOSQL;vtksqlite;vtkIOVideo;vtkRenderingImage;vtkRenderingLIC;vtkRenderingLOD;vtkRenderingVolumeOpenGL;vtkViewsContext2D;vtkViewsInfovis
    • OpenNI 2 found (include: C:/Program Files/OpenNI2/Include, lib: C:/Program Files/OpenNI2/Lib/OpenNI2.lib, redist: C:\Program Files\OpenNI2\Redist)
  5. [Generate]を押してソリューションファイルを出力する。

Build

  1. Visual Studioを管理者権限で起動してPCLのソリューションファイル(C:\PCL-1.8.0\build\PCL.sln)を開く。
    (Visual Studioを管理者権限で起動しないとINSTALLが失敗する。)

  2. PCLをビルドする。(ALL_BUILD)

    1. ソリューションの構成(Debug, Release)を設定する。
    2. ソリューションエクスプローラーからALL_BUILDプロジェクトを選択する。
    3. [ビルド]>[ソリューションのビルド]を押してPCLをビルドする。
  3. PCLをインストールする。(INSTALL)

    1. ソリューションエクスプローラーからINSTALLプロジェクトを選択する。
    2. [ビルド]>[プロジェクトのみ]>[INSTALLのみをビルド]を押してPCLをインストールする。
      CMAKE_INSTALL_PREFIXで指定した出力先へ必要なファイルがコピーされる。

Environment Variable

  1. 環境変数PCL_ROOTを作成してPCLのパス(C:\Program Files\PCL)を設定する。

  2. 環境変数PathにPCLと3rdPartyのパスを追加する。

    • ;%PCL_ROOT%\bin
    • %OPENNI2_REDIST64%

Building PCL 1.8.1 with Visual Studio

Download

  1. PCLをGitからクローンする。(C:\PCL-1.8.1)
    https://github.com/PointCloudLibrary/pcl/tree/pcl-1.8.1

3rdParty

  1. 3rdPartyのライブラリをビルド、インストールする。

  2. 3rdPartyのライブラリの環境変数を設定する。

    • BOOST_ROOT C:\Program Files\Boost
    • EIGEN_ROOT C:\Program Files\Eigen3
    • FLANN_ROOT C:\Program Files\flann
    • QHULL_ROOT C:\Program Files\qfull
    • VTK_DIR C:\Program Files\VTK

CMake

  1. ソースコードの入力先とソリューションファイルの出力先を指定する。

    • Where is the source code: C:\PCL-1.8.1
    • Where is build the binaries: C:\PCL-1.8.1\build
  2. [Configure]を押してターゲットとなるVisual Studioを選択する。

  3. 各種設定を行う。
    (GroupedとAdvancedにチェックを入れるとわかりやすい。)
    Ungrouped Entries

    • EIGEN_INCLUDE_DIR C:\Program Files\Eigen3\include\eigen3
    • VTK_DIR C:\Program Files\VTK\lib\cmake\vtk-8.0

    BUILD

    • BUILD_2d ☑(check)
    • BUILD_CUDA ☐(uncheck)
    • BUILD_GPU ☐(uncheck)
    • BUILD_all_in_one_installer ☑(check)*1
    • BUILD_apps ☐(uncheck)
    • BUILD_common ☑(check)
    • BUILD_example ☐(uncheck)
    • BUILD_features ☑(check)
    • BUILD_filters ☑(check)
    • BUILD_geometry ☑(check)
    • BUILD_global_tests ☐(uncheck)
    • BUILD_io ☑(check)
    • BUILD_kdtree ☑(check)
    • BUILD_keypoints ☑(check)
    • BUILD_ml ☑(check)  
    • BUILD_octree ☑(check)
    • BUILD_outofcore ☑(check)
    • BUILD_people ☑(check)
    • BUILD_recognition ☑(check)
    • BUILD_registration ☑(check)
    • BUILD_sample_consensus ☑(check)
    • BUILD_search ☑(check)
    • BUILD_segmentation ☑(check)
    • BUILD_simulation ☐(uncheck)
    • BUILD_stereo ☑(check)
    • BUILD_surface ☑(check)
    • BUILD_surface_on_nurbs ☑(check)
    • BUILD_tools ☑(check)*2
    • BUILD_tracking ☑(check)
    • BUILD_visualization ☑(check)

    *1 INSTALLプロジェクトをビルドしたとき<CMAKE_INSTALL_PREFIX>(C:\Program Files\PCL)に指定したディレクトリにPCLと3rdPartyがコピーされる。
    *2 ビルドに時間がかかるため、各種ツール類(bin\pcl_*.exe)が必要でなければチェックを外す。

    Boost

    • Boost_ATOMIC_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_atomic-vc141-mt-gd-1_64.lib
    • Boost_ATOMIC_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_atomic-vc141-mt-1_64.lib
    • Boost_CHRONO_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_chrono-vc141-mt-gd-1_64.lib
    • Boost_CHRONO_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_chrono-vc141-mt-1_64.lib
    • Boost_DATE_TIME_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_date_time-vc141-mt-gd-1_64.lib
    • Boost_DATE_TIME_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_date_time-vc141-mt-1_64.lib
    • Boost_FILESYSTEM_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_filesystem-vc141-mt-gd-1_64.lib
    • Boost_FILESYSTEM_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_filesystem-vc141-mt-1_64.lib
    • Boost_INCLUDE_DIR C:\Program Files\Boost\include\boost-1_64
    • Boost_IOSTREAMS_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_iostreams-vc141-mt-gd-1_64.lib
    • Boost_IOSTREAMS_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_iostreams-vc141-mt-1_64.lib
    • Boost_LIBRARY_DIR_DEBUG C:\Program Files\Boost\lib
    • Boost_LIBRARY_DIR_RELEASE C:\Program Files\Boost\lib
    • Boost_MPI_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_mpi-vc141-mt-gd-1_64.lib
    • Boost_MPI_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_mpi-vc141-mt-1_64.lib
    • Boost_REGEX_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_regex-vc141-mt-gd-1_64.lib
    • Boost_REGEX_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_regex-vc141-mt-1_64.lib
    • Boost_SERIALIZATION_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_serialization-vc141-mt-gd-1_64.lib
    • Boost_SERIALIZATION_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_serialization-vc141-mt-1_64.lib
    • Boost_SYSTEM_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_system-vc141-mt-gd-1_64.lib
    • Boost_SYSTEM_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_system-vc141-mt-1_64.lib
    • Boost_THREAD_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_thread-vc141-mt-gd-1_64.lib
    • Boost_THREAD_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_thread-vc141-mt-1_64.lib

    CMAKE

    • CMAKE_CONFIGURATION_TYPES Debug;Release
    • CMAKE_INSTALL_PREFIX C:\Program Files\PCL

    FLANN

    • FLANN_INCLUDE_DIR C:\Program Files\flann\include
    • FLANN_LIBRARY C:\Program Files\flann\lib\flann_cpp_s.lib
    • FLANN_LIBRARY_DEBUG C:\Program Files\flann\lib\flann_cpp_s-gd.lib

    OPENNI2

    • OPENNI2_INCLUDE_DIRS C:\Program Files\OpenNI2\Include
    • OPENNI2_LIBRARY C:\Program Files\OpenNI2\Lib\OpenNI2

    QHULL

    • QHULL_INCLUDE_DIR C:\Program Files\qhull\include
    • QHULL_LIBRARY C:\Program Files\qhull\lib\qhullstatic.lib
    • QHULL_LIBRARY_DEBUG C:\Program Files\qhull\lib\qhullstatic_d.lib

    WITH

    • WITH_CUDA ☐(uncheck)
    • WITH_DAVIDSDK ☐(uncheck)
    • WITH_DOCS ☐(uncheck)
    • WITH_DSSDK ☐(uncheck)
    • WITH_ENSENSO ☐(uncheck)
    • WITH_FZAPI ☐(uncheck)
    • WITH_LIBUSB ☐(uncheck)
    • WITH_OPENGL ☑(check)
    • WITH_OPENNI ☐(uncheck)
    • WITH_OPENNI2 ☑(check)
    • WITH_PCAP ☐(uncheck)
    • WITH_PNG ☐(uncheck)
    • WITH_QHULL ☑(check)
    • WITH_QT ☐(uncheck)
    • WITH_RSSDK ☐(uncheck)
    • WITH_VTK ☑(check)
  4. 設定内容を確認する。

    • Boost version: 1.64.0
      Found the following Boost libraries:
      system
      filesystem
      thread
      date_time
      iostreams
      chrono
      atomic
      regex
    • Eigen found (include: C:/Program Files/Eigen/include/eigen3, version: 3.3.4)
    • FLANN found (include: C:/Program Files/flann/include, lib: optimized;C:/Program Files/flann/lib/flann_cpp_s.lib;debug;C:/Program Files/flann/lib/flann_cpp_s-gd.lib)
    • QHULL found (include: C:/Program Files/qhull/include, lib: optimized;C:/Program Files/qhull/lib/qhullstatic.lib;debug;C:/Program Files/qhull/lib/qhullstatic_d.lib)
    • VTK_MAJOR_VERSION 8, rendering backend: OpenGL
      VTK found (include: C:/Program Files/VTK/include/vtk-8.0, lib: vtkChartsCore;vtkCommonColor;vtkCommonCore;vtksys;vtkCommonDataModel;vtkCommonMath;vtkCommonMisc;vtkCommonSystem;vtkCommonTransforms;vtkCommonExecutionModel;vtkFiltersGeneral;vtkCommonComputationalGeometry;vtkFiltersCore;vtkInfovisCore;vtkFiltersExtraction;vtkFiltersStatistics;vtkImagingFourier;vtkImagingCore;vtkalglib;vtkRenderingContext2D;vtkRenderingCore;vtkFiltersGeometry;vtkFiltersSources;vtkRenderingFreeType;vtkfreetype;vtkzlib;vtkDICOMParser;vtkDomainsChemistry;vtkIOLegacy;vtkIOCore;vtklz4;vtkIOXMLParser;vtkexpat;vtkFiltersAMR;vtkIOXML;vtkParallelCore;vtkFiltersFlowPaths;vtkFiltersGeneric;vtkFiltersHybrid;vtkImagingSources;vtkFiltersHyperTree;vtkFiltersImaging;vtkImagingGeneral;vtkFiltersModeling;vtkFiltersParallel;vtkFiltersParallelImaging;vtkFiltersPoints;vtkFiltersProgrammable;vtkFiltersSMP;vtkFiltersSelection;vtkFiltersTexture;vtkFiltersTopology;vtkFiltersVerdict;verdict;vtkGeovisCore;vtkIOImage;vtkmetaio;vtkjpeg;vtkpng;vtktiff;vtkInfovisLayout;vtkImagingHybrid;vtkInteractionStyle;vtkInteractionWidgets;vtkImagingColor;vtkRenderingAnnotation;vtkRenderingVolume;vtkViewsCore;vtkproj4;vtkIOAMR;vtkhdf5_hl;vtkhdf5;vtkIOEnSight;vtkIOExodus;vtkexoIIc;vtkNetCDF;vtkIOExport;vtkRenderingGL2PS;vtkRenderingContextOpenGL;vtkRenderingOpenGL;vtkgl2ps;vtklibharu;vtkIOExportOpenGL;vtkRenderingLabel;vtkIOGeometry;vtkIOImport;vtkIOInfovis;vtklibxml2;vtkIOLSDyna;vtkIOMINC;vtkIOMovie;vtkoggtheora;vtkIONetCDF;vtknetcdfcpp;vtkIOPLY;vtkIOParallel;vtkjsoncpp;vtkIOParallelXML;vtkIOSQL;vtksqlite;vtkIOTecplotTable;vtkIOVideo;vtkImagingMath;vtkImagingMorphological;vtkImagingStatistics;vtkImagingStencil;vtkInteractionImage;vtkRenderingImage;vtkRenderingLIC;vtkRenderingLOD;vtkRenderingVolumeOpenGL;vtkViewsContext2D;vtkViewsInfovis
    • OpenNI 2 found (include: C:/Program Files/OpenNI2/Include, lib: C:/Program Files/OpenNI2/Lib/OpenNI2.lib, redist: C:\Program Files\OpenNI2\Redist)
  5. [Generate]を押してソリューションファイルを出力する。

Build

  1. Visual Studioを管理者権限で起動してPCLのソリューションファイル(C:\PCL-1.8.1\build\PCL.sln)を開く。
    (Visual Studioを管理者権限で起動しないとINSTALLが失敗する。)

  2. PCLをビルドする。(ALL_BUILD)

    1. ソリューションの構成(Debug, Release)を設定する。
    2. ソリューションエクスプローラーからALL_BUILDプロジェクトを選択する。
    3. [ビルド]>[ソリューションのビルド]を押してPCLをビルドする。
  3. PCLをインストールする。(INSTALL)

    1. ソリューションエクスプローラーからINSTALLプロジェクトを選択する。
    2. [ビルド]>[プロジェクトのみ]>[INSTALLのみをビルド]を押してPCLをインストールする。
      CMAKE_INSTALL_PREFIXで指定した出力先へ必要なファイルがコピーされる。

Environment Variable

  1. 環境変数PCL_ROOTを作成してPCLのパス(C:\Program Files\PCL)を設定する。

  2. 環境変数PathにPCLと3rdPartyのパスを追加する。

    • ;%PCL_ROOT%\bin
    • ;%OPENNI2_REDIST64%

Building PCL 1.9.0 with Visual Studio

Download

  1. PCLをGitからクローンする。(C:\PCL-1.9.0)
    https://github.com/PointCloudLibrary/pcl/tree/pcl-1.9.0

3rdParty

  1. 3rdPartyのライブラリをビルド、インストールする。

  2. 3rdPartyのライブラリの環境変数を設定する。

    • BOOST_ROOT C:\Program Files\Boost
    • EIGEN_ROOT C:\Program Files\Eigen3
    • FLANN_ROOT C:\Program Files\flann
    • QHULL_ROOT C:\Program Files\qfull
    • VTK_DIR C:\Program Files\VTK

CMake

  1. ソースコードの入力先とソリューションファイルの出力先を指定する。

    • Where is the source code: C:\PCL-1.9.0
    • Where is build the binaries: C:\PCL-1.9.0\build
  2. [Configure]を押してターゲットとなるVisual Studioを選択する。

  3. 各種設定を行う。
    (GroupedとAdvancedにチェックを入れるとわかりやすい。)
    Ungrouped Entries

    • EIGEN_INCLUDE_DIR C:\Program Files\Eigen3\include\eigen3
    • VTK_DIR C:\Program Files\VTK\lib\cmake\vtk-8.1

    BUILD

    • BUILD_2d ☑(check)
    • BUILD_CUDA ☐(uncheck)
    • BUILD_GPU ☐(uncheck)
    • BUILD_all_in_one_installer ☑(check)*1
    • BUILD_apps ☐(uncheck)
    • BUILD_common ☑(check)
    • BUILD_example ☐(uncheck)
    • BUILD_features ☑(check)
    • BUILD_filters ☑(check)
    • BUILD_geometry ☑(check)
    • BUILD_global_tests ☐(uncheck)
    • BUILD_io ☑(check)
    • BUILD_kdtree ☑(check)
    • BUILD_keypoints ☑(check)
    • BUILD_ml ☑(check)  
    • BUILD_octree ☑(check)
    • BUILD_outofcore ☑(check)
    • BUILD_people ☑(check)
    • BUILD_recognition ☑(check)
    • BUILD_registration ☑(check)
    • BUILD_sample_consensus ☑(check)
    • BUILD_search ☑(check)
    • BUILD_segmentation ☑(check)
    • BUILD_simulation ☐(uncheck)
    • BUILD_stereo ☑(check)
    • BUILD_surface ☑(check)
    • BUILD_surface_on_nurbs ☑(check)
    • BUILD_tools ☑(check)*2
    • BUILD_tracking ☑(check)
    • BUILD_visualization ☑(check)

    *1 INSTALLプロジェクトをビルドしたとき<CMAKE_INSTALL_PREFIX>(C:\Program Files\PCL)に指定したディレクトリにPCLと3rdPartyがコピーされる。
    *2 ビルドに時間がかかるため、各種ツール類(bin\pcl_*.exe)が必要でなければチェックを外す。

    Boost

    • Boost_ATOMIC_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_atomic-vc141-mt-gd-1_68.lib
    • Boost_ATOMIC_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_atomic-vc141-mt-1_68.lib
    • Boost_CHRONO_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_chrono-vc141-mt-gd-1_68.lib
    • Boost_CHRONO_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_chrono-vc141-mt-1_68.lib
    • Boost_DATE_TIME_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_date_time-vc141-mt-gd-1_68.lib
    • Boost_DATE_TIME_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_date_time-vc141-mt-1_68.lib
    • Boost_FILESYSTEM_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_filesystem-vc141-mt-gd-1_68.lib
    • Boost_FILESYSTEM_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_filesystem-vc141-mt-1_68.lib
    • Boost_INCLUDE_DIR C:\Program Files\Boost\include\boost-1_68
    • Boost_IOSTREAMS_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_iostreams-vc141-mt-gd-1_68.lib
    • Boost_IOSTREAMS_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_iostreams-vc141-mt-1_68.lib
    • Boost_LIBRARY_DIR_DEBUG C:\Program Files\Boost\lib
    • Boost_LIBRARY_DIR_RELEASE C:\Program Files\Boost\lib
    • Boost_MPI_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_mpi-vc141-mt-gd-1_68.lib
    • Boost_MPI_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_mpi-vc141-mt-1_68.lib
    • Boost_REGEX_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_regex-vc141-mt-gd-1_68.lib
    • Boost_REGEX_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_regex-vc141-mt-1_68.lib
    • Boost_SERIALIZATION_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_serialization-vc141-mt-gd-1_68.lib
    • Boost_SERIALIZATION_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_serialization-vc141-mt-1_68.lib
    • Boost_SYSTEM_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_system-vc141-mt-gd-1_68.lib
    • Boost_SYSTEM_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_system-vc141-mt-1_68.lib
    • Boost_THREAD_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_thread-vc141-mt-gd-1_68.lib
    • Boost_THREAD_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_thread-vc141-mt-1_68.lib

    CMAKE

    • CMAKE_CONFIGURATION_TYPES Debug;Release
    • CMAKE_INSTALL_PREFIX C:\Program Files\PCL

    FLANN

    • FLANN_INCLUDE_DIR C:\Program Files\flann\include
    • FLANN_LIBRARY C:\Program Files\flann\lib\flann_cpp_s.lib
    • FLANN_LIBRARY_DEBUG C:\Program Files\flann\lib\flann_cpp_s-gd.lib

    OPENNI2

    • OPENNI2_INCLUDE_DIRS C:\Program Files\OpenNI2\Include
    • OPENNI2_LIBRARY C:\Program Files\OpenNI2\Lib\OpenNI2

    QHULL

    • QHULL_INCLUDE_DIR C:\Program Files\qhull\include
    • QHULL_LIBRARY C:\Program Files\qhull\lib\qhullstatic.lib
    • QHULL_LIBRARY_DEBUG C:\Program Files\qhull\lib\qhullstatic_d.lib

    WITH

    • WITH_CUDA ☐(uncheck)
    • WITH_DAVIDSDK ☐(uncheck)
    • WITH_DOCS ☐(uncheck)
    • WITH_DSSDK ☐(uncheck)
    • WITH_ENSENSO ☐(uncheck)
    • WITH_FZAPI ☐(uncheck)
    • WITH_LIBUSB ☐(uncheck)
    • WITH_OPENGL ☑(check)
    • WITH_OPENNI ☐(uncheck)
    • WITH_OPENNI2 ☑(check)
    • WITH_PCAP ☐(uncheck)
    • WITH_PNG ☐(uncheck)
    • WITH_QHULL ☑(check)
    • WITH_QT ☐(uncheck)
    • WITH_RSSDK ☐(uncheck)
    • WITH_VTK ☑(check)
  4. 設定内容を確認する。

    • Boost version: 1.68.0
      Found the following Boost libraries:
      system
      filesystem
      thread
      date_time
      iostreams
      chrono
      atomic
      regex
    • Eigen found (include: C:/Program Files/Eigen/include/eigen3, version: 3.3.5)
    • FLANN found (include: C:/Program Files/flann/include, lib: optimized;C:/Program Files/flann/lib/flann_cpp_s.lib;debug;C:/Program Files/flann/lib/flann_cpp_s-gd.lib)
    • QHULL found (include: C:/Program Files/qhull/include, lib: optimized;C:/Program Files/qhull/lib/qhullstatic.lib;debug;C:/Program Files/qhull/lib/qhullstatic_d.lib)
    • VTK_MAJOR_VERSION 8, rendering backend: OpenGL
      VTK found (include: C:/Program Files/VTK/include/vtk-8.1, lib: vtkChartsCore;vtkCommonColor;vtkCommonCore;vtksys;vtkCommonDataModel;vtkCommonMath;vtkCommonMisc;vtkCommonSystem;vtkCommonTransforms;vtkCommonExecutionModel;vtkFiltersGeneral;vtkCommonComputationalGeometry;vtkFiltersCore;vtkInfovisCore;vtkFiltersExtraction;vtkFiltersStatistics;vtkImagingFourier;vtkImagingCore;vtkalglib;vtkRenderingContext2D;vtkRenderingCore;vtkFiltersGeometry;vtkFiltersSources;vtkRenderingFreeType;vtkfreetype;vtkzlib;vtkDICOMParser;vtkDomainsChemistry;vtkIOLegacy;vtkIOCore;vtklz4;vtkIOXMLParser;vtkexpat;vtkFiltersAMR;vtkIOXML;vtkParallelCore;vtkFiltersFlowPaths;vtkFiltersGeneric;vtkFiltersHybrid;vtkImagingSources;vtkFiltersHyperTree;vtkFiltersImaging;vtkImagingGeneral;vtkFiltersModeling;vtkFiltersParallel;vtkFiltersParallelImaging;vtkFiltersPoints;vtkFiltersProgrammable;vtkFiltersSMP;vtkFiltersSelection;vtkFiltersTexture;vtkFiltersTopology;vtkFiltersVerdict;verdict;vtkGeovisCore;vtkIOImage;vtkmetaio;vtkjpeg;vtkpng;vtktiff;vtkInfovisLayout;vtkImagingHybrid;vtkInteractionStyle;vtkInteractionWidgets;vtkImagingColor;vtkRenderingAnnotation;vtkRenderingVolume;vtkViewsCore;vtkproj4;vtkIOAMR;vtkhdf5_hl;vtkhdf5;vtkIOEnSight;vtkIOExodus;vtkexoIIc;vtkNetCDF;vtkIOExport;vtkRenderingGL2PS;vtkRenderingContextOpenGL;vtkRenderingOpenGL;vtkgl2ps;vtklibharu;vtkIOExportOpenGL;vtkRenderingLabel;vtkIOGeometry;vtkIOImport;vtkIOInfovis;vtklibxml2;vtkIOLSDyna;vtkIOMINC;vtkIOMovie;vtkoggtheora;vtkIONetCDF;vtknetcdfcpp;vtkIOPLY;vtkIOParallel;vtkjsoncpp;vtkIOParallelXML;vtkIOSQL;vtksqlite;vtkIOTecplotTable;vtkIOVideo;vtkImagingMath;vtkImagingMorphological;vtkImagingStatistics;vtkImagingStencil;vtkInteractionImage;vtkRenderingImage;vtkRenderingLIC;vtkRenderingLOD;vtkRenderingVolumeOpenGL;vtkViewsContext2D;vtkViewsInfovis
    • OpenNI 2 found (include: C:/Program Files/OpenNI2/Include, lib: C:/Program Files/OpenNI2/Lib/OpenNI2.lib, redist: C:\Program Files\OpenNI2\Redist)
  5. [Generate]を押してソリューションファイルを出力する。

Build

  1. Visual Studioを管理者権限で起動してPCLのソリューションファイル(C:\PCL-1.9.0\build\PCL.sln)を開く。
    (Visual Studioを管理者権限で起動しないとINSTALLが失敗する。)

  2. PCLをビルドする。(ALL_BUILD)

    1. ソリューションの構成(Debug, Release)を設定する。
    2. ソリューションエクスプローラーからALL_BUILDプロジェクトを選択する。
    3. [ビルド]>[ソリューションのビルド]を押してPCLをビルドする。
  3. PCLをインストールする。(INSTALL)

    1. ソリューションエクスプローラーからINSTALLプロジェクトを選択する。
    2. [ビルド]>[プロジェクトのみ]>[INSTALLのみをビルド]を押してPCLをインストールする。
      CMAKE_INSTALL_PREFIXで指定した出力先へ必要なファイルがコピーされる。

Environment Variable

  1. 環境変数PCL_ROOTを作成してPCLのパス(C:\Program Files\PCL)を設定する。

  2. 環境変数PathにPCLと3rdPartyのパスを追加する。

    • ;%PCL_ROOT%\bin
    • ;%OPENNI2_REDIST64%

Building PCL 1.9.1 with Visual Studio

Download

  1. PCLをGitからクローンする。(C:\PCL-1.9.1)
    https://github.com/PointCloudLibrary/pcl/tree/pcl-1.9.1

3rdParty

  1. 3rdPartyのライブラリをビルド、インストールする。

  2. 3rdPartyのライブラリの環境変数を設定する。

    • BOOST_ROOT C:\Program Files\Boost
    • EIGEN_ROOT C:\Program Files\Eigen3
    • FLANN_ROOT C:\Program Files\flann
    • QHULL_ROOT C:\Program Files\qfull
    • VTK_DIR C:\Program Files\VTK

CMake

  1. ソースコードの入力先とソリューションファイルの出力先を指定する。

    • Where is the source code: C:\PCL-1.9.1
    • Where is build the binaries: C:\PCL-1.9.1\build
  2. [Configure]を押してターゲットとなるVisual Studioを選択する。

  3. 各種設定を行う。
    (GroupedとAdvancedにチェックを入れるとわかりやすい。)
    Ungrouped Entries

    • EIGEN_INCLUDE_DIR C:\Program Files\Eigen3\include\eigen3
    • VTK_DIR C:\Program Files\VTK\lib\cmake\vtk-8.1

    BUILD

    • BUILD_2d ☑(check)
    • BUILD_CUDA ☐(uncheck)
    • BUILD_GPU ☐(uncheck)
    • BUILD_all_in_one_installer ☑(check)*1
    • BUILD_apps ☐(uncheck)
    • BUILD_common ☑(check)
    • BUILD_example ☐(uncheck)
    • BUILD_features ☑(check)
    • BUILD_filters ☑(check)
    • BUILD_geometry ☑(check)
    • BUILD_global_tests ☐(uncheck)
    • BUILD_io ☑(check)
    • BUILD_kdtree ☑(check)
    • BUILD_keypoints ☑(check)
    • BUILD_ml ☑(check)  
    • BUILD_octree ☑(check)
    • BUILD_outofcore ☑(check)
    • BUILD_people ☑(check)
    • BUILD_recognition ☑(check)
    • BUILD_registration ☑(check)
    • BUILD_sample_consensus ☑(check)
    • BUILD_search ☑(check)
    • BUILD_segmentation ☑(check)
    • BUILD_simulation ☐(uncheck)
    • BUILD_stereo ☑(check)
    • BUILD_surface ☑(check)
    • BUILD_surface_on_nurbs ☑(check)
    • BUILD_tools ☑(check)*2
    • BUILD_tracking ☑(check)
    • BUILD_visualization ☑(check)

    *1 INSTALLプロジェクトをビルドしたとき<CMAKE_INSTALL_PREFIX>(C:\Program Files\PCL)に指定したディレクトリにPCLと3rdPartyがコピーされる。
    *2 ビルドに時間がかかるため、各種ツール類(bin\pcl_*.exe)が必要でなければチェックを外す。

    Boost

    • Boost_ATOMIC_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_atomic-vc141-mt-gd-1_68.lib
    • Boost_ATOMIC_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_atomic-vc141-mt-1_68.lib
    • Boost_CHRONO_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_chrono-vc141-mt-gd-1_68.lib
    • Boost_CHRONO_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_chrono-vc141-mt-1_68.lib
    • Boost_DATE_TIME_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_date_time-vc141-mt-gd-1_68.lib
    • Boost_DATE_TIME_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_date_time-vc141-mt-1_68.lib
    • Boost_FILESYSTEM_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_filesystem-vc141-mt-gd-1_68.lib
    • Boost_FILESYSTEM_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_filesystem-vc141-mt-1_68.lib
    • Boost_INCLUDE_DIR C:\Program Files\Boost\include\boost-1_68
    • Boost_IOSTREAMS_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_iostreams-vc141-mt-gd-1_68.lib
    • Boost_IOSTREAMS_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_iostreams-vc141-mt-1_68.lib
    • Boost_LIBRARY_DIR_DEBUG C:\Program Files\Boost\lib
    • Boost_LIBRARY_DIR_RELEASE C:\Program Files\Boost\lib
    • Boost_MPI_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_mpi-vc141-mt-gd-1_68.lib
    • Boost_MPI_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_mpi-vc141-mt-1_68.lib
    • Boost_REGEX_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_regex-vc141-mt-gd-1_68.lib
    • Boost_REGEX_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_regex-vc141-mt-1_68.lib
    • Boost_SERIALIZATION_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_serialization-vc141-mt-gd-1_68.lib
    • Boost_SERIALIZATION_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_serialization-vc141-mt-1_68.lib
    • Boost_SYSTEM_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_system-vc141-mt-gd-1_68.lib
    • Boost_SYSTEM_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_system-vc141-mt-1_68.lib
    • Boost_THREAD_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_thread-vc141-mt-gd-1_68.lib
    • Boost_THREAD_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_thread-vc141-mt-1_68.lib

    CMAKE

    • CMAKE_CONFIGURATION_TYPES Debug;Release
    • CMAKE_INSTALL_PREFIX C:\Program Files\PCL

    FLANN

    • FLANN_INCLUDE_DIR C:\Program Files\flann\include
    • FLANN_LIBRARY C:\Program Files\flann\lib\flann_cpp_s.lib
    • FLANN_LIBRARY_DEBUG C:\Program Files\flann\lib\flann_cpp_s-gd.lib

    OPENNI2

    • OPENNI2_INCLUDE_DIRS C:\Program Files\OpenNI2\Include
    • OPENNI2_LIBRARY C:\Program Files\OpenNI2\Lib\OpenNI2

    QHULL

    • QHULL_INCLUDE_DIR C:\Program Files\qhull\include
    • QHULL_LIBRARY C:\Program Files\qhull\lib\qhullstatic.lib
    • QHULL_LIBRARY_DEBUG C:\Program Files\qhull\lib\qhullstatic_d.lib

    WITH

    • WITH_CUDA ☐(uncheck)
    • WITH_DAVIDSDK ☐(uncheck)
    • WITH_DOCS ☐(uncheck)
    • WITH_DSSDK ☐(uncheck)
    • WITH_ENSENSO ☐(uncheck)
    • WITH_FZAPI ☐(uncheck)
    • WITH_LIBUSB ☐(uncheck)
    • WITH_OPENGL ☑(check)
    • WITH_OPENNI ☐(uncheck)
    • WITH_OPENNI2 ☑(check)
    • WITH_PCAP ☐(uncheck)
    • WITH_PNG ☐(uncheck)
    • WITH_QHULL ☑(check)
    • WITH_QT ☐(uncheck)
    • WITH_RSSDK ☐(uncheck)
    • WITH_VTK ☑(check)
  4. 設定内容を確認する。

    • Boost version: 1.68.0
      Found the following Boost libraries:
      system
      filesystem
      thread
      date_time
      iostreams
      chrono
      atomic
      regex
    • Eigen found (include: C:/Program Files/Eigen/include/eigen3, version: 3.3.5)
    • FLANN found (include: C:/Program Files/flann/include, lib: optimized;C:/Program Files/flann/lib/flann_cpp_s.lib;debug;C:/Program Files/flann/lib/flann_cpp_s-gd.lib)
    • QHULL found (include: C:/Program Files/qhull/include, lib: optimized;C:/Program Files/qhull/lib/qhullstatic.lib;debug;C:/Program Files/qhull/lib/qhullstatic_d.lib)
    • VTK_MAJOR_VERSION 8, rendering backend: OpenGL
      VTK found (include: C:/Program Files/VTK/include/vtk-8.1, lib: vtkChartsCore;vtkCommonColor;vtkCommonCore;vtksys;vtkCommonDataModel;vtkCommonMath;vtkCommonMisc;vtkCommonSystem;vtkCommonTransforms;vtkCommonExecutionModel;vtkFiltersGeneral;vtkCommonComputationalGeometry;vtkFiltersCore;vtkInfovisCore;vtkFiltersExtraction;vtkFiltersStatistics;vtkImagingFourier;vtkImagingCore;vtkalglib;vtkRenderingContext2D;vtkRenderingCore;vtkFiltersGeometry;vtkFiltersSources;vtkRenderingFreeType;vtkfreetype;vtkzlib;vtkDICOMParser;vtkDomainsChemistry;vtkIOLegacy;vtkIOCore;vtklz4;vtkIOXMLParser;vtkexpat;vtkFiltersAMR;vtkIOXML;vtkParallelCore;vtkFiltersFlowPaths;vtkFiltersGeneric;vtkFiltersHybrid;vtkImagingSources;vtkFiltersHyperTree;vtkFiltersImaging;vtkImagingGeneral;vtkFiltersModeling;vtkFiltersParallel;vtkFiltersParallelImaging;vtkFiltersPoints;vtkFiltersProgrammable;vtkFiltersSMP;vtkFiltersSelection;vtkFiltersTexture;vtkFiltersTopology;vtkFiltersVerdict;verdict;vtkGeovisCore;vtkIOImage;vtkmetaio;vtkjpeg;vtkpng;vtktiff;vtkInfovisLayout;vtkImagingHybrid;vtkInteractionStyle;vtkInteractionWidgets;vtkImagingColor;vtkRenderingAnnotation;vtkRenderingVolume;vtkViewsCore;vtkproj4;vtkIOAMR;vtkhdf5_hl;vtkhdf5;vtkIOEnSight;vtkIOExodus;vtkexoIIc;vtkNetCDF;vtkIOExport;vtkRenderingGL2PS;vtkRenderingContextOpenGL;vtkRenderingOpenGL;vtkgl2ps;vtklibharu;vtkIOExportOpenGL;vtkRenderingLabel;vtkIOGeometry;vtkIOImport;vtkIOInfovis;vtklibxml2;vtkIOLSDyna;vtkIOMINC;vtkIOMovie;vtkoggtheora;vtkIONetCDF;vtknetcdfcpp;vtkIOPLY;vtkIOParallel;vtkjsoncpp;vtkIOParallelXML;vtkIOSQL;vtksqlite;vtkIOTecplotTable;vtkIOVideo;vtkImagingMath;vtkImagingMorphological;vtkImagingStatistics;vtkImagingStencil;vtkInteractionImage;vtkRenderingImage;vtkRenderingLIC;vtkRenderingLOD;vtkRenderingVolumeOpenGL;vtkViewsContext2D;vtkViewsInfovis
    • OpenNI 2 found (include: C:/Program Files/OpenNI2/Include, lib: C:/Program Files/OpenNI2/Lib/OpenNI2.lib, redist: C:\Program Files\OpenNI2\Redist)
  5. [Generate]を押してソリューションファイルを出力する。

Build

  1. Visual Studioを管理者権限で起動してPCLのソリューションファイル(C:\PCL-1.9.1\build\PCL.sln)を開く。
    (Visual Studioを管理者権限で起動しないとINSTALLが失敗する。)

  2. PCLをビルドする。(ALL_BUILD)

    1. ソリューションの構成(Debug, Release)を設定する。
    2. ソリューションエクスプローラーからALL_BUILDプロジェクトを選択する。
    3. [ビルド]>[ソリューションのビルド]を押してPCLをビルドする。
  3. PCLをインストールする。(INSTALL)

    1. ソリューションエクスプローラーからINSTALLプロジェクトを選択する。
    2. [ビルド]>[プロジェクトのみ]>[INSTALLのみをビルド]を押してPCLをインストールする。
      CMAKE_INSTALL_PREFIXで指定した出力先へ必要なファイルがコピーされる。

Environment Variable

  1. 環境変数PCL_ROOTを作成してPCLのパス(C:\Program Files\PCL)を設定する。

  2. 環境変数PathにPCLと3rdPartyのパスを追加する。

    • ;%PCL_ROOT%\bin
    • ;%OPENNI2_REDIST64%
@PatrickAllenCooper
Copy link

Hi there,

Just a quick heads up to anyone trapped with a confusing error complaining opengl.lib cannot be found during the BUILD_ALL in VS.

The error makes reference to your configuration of VTK in CMake. Many build guides will insist on renaming opengl32 to just opengl under the OPENGL category when configuring in CMake. However, this can cause build problems for PCL depending on your environment.

Hope this helped someone!

@KJChang
Copy link

KJChang commented Nov 3, 2018

Hello!
I am new to CMake. When I Cmake my PCL1.8. It just tells me this!
boost
I have already tried different verson of boost but I still can't figure out the reason. It has already concern me for a very long time!
Is there any solution to this?

@yoshiyama
Copy link

When PCL1.9.1 was configured in CMAKE-GUI on Windows 10 64bit, an error was occurred as below.
FLANN1.9.1 was already installed by referring as this webpage (https://gist.github.com/UnaNancyOwen/1e3fced09e4430ad0b7b#file-flann1-9-1-md).
Let me know how to solve it.

----------------error message------------
CMake Error at C:/Program Files/CMake/share/cmake-3.13/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
Could NOT find FLANN (missing: FLANN_LIBRARIES FLANN_INCLUDE_DIR) (Required
is at least version "1.7.0")
Call Stack (most recent call first):
C:/Program Files/CMake/share/cmake-3.13/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE)
cmake/Modules/FindFLANN.cmake:111 (find_package_handle_standard_args)
CMakeLists.txt:290 (find_package)

@UnaNancyOwen
Copy link
Author

@yoshiyama I think the source code you are going to build is not PCL 1.9.1, because find_package() is not in CMakeLists.txt line 290 of PCL 1.9.1. I was built PCL 1.9.1 according to this manual. If you can't build it, It is something wrong in your operation.

@yoshiyama
Copy link

Hi UnaNancyOwen,
thank you for your advice.
My operation was wrong as your advice.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment