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%
@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