Skip to content

Instantly share code, notes, and snippets.

@UnaNancyOwen
Last active January 10, 2024 01:05
Show Gist options
  • Star 37 You must be signed in to star a gist
  • Fork 13 You must be signed in to fork a gist
  • 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(17.8.2-17.8.?)ではコンパイラのバグのためビルドできない可能性があります。
Visual Studio 2022 17.6を利用してください。

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.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%
@qmpham
Copy link

qmpham commented Mar 21, 2015

I get this problem
" CMake Error at C:/Program Files (x86)/CMake/share/cmake-3.0/Modules/FindPackageHandleStandardArgs.cmake:136 (message):
Could NOT find FLANN (missing: FLANN_LIBRARY) (Required is at least version
"1.7.0")
Call Stack (most recent call first):
C:/Program Files (x86)/CMake/share/cmake-3.0/Modules/FindPackageHandleStandardArgs.cmake:343 (_FPHSA_FAILURE_MESSAGE)
cmake/Modules/FindFLANN.cmake:54 (find_package_handle_standard_args)
CMakeLists.txt:253 (find_package)
Configuring incomplete, errors occurred!

@UnaNancyOwen
Copy link
Author

Note: Building PCL 1.7.2 with Visual Studio 2015

Visual Studio 2015の破壊的変更に起因するエラーが発生するため、以下のファイルを修正する。
詳細はBreaking Changes in Visual C++Adjacent string literalshash_map and hash_setを参照してください。

  • surface\src\3rdparty\opennurbs\opennurbs_archive.cpp
    13560 line

        rc = archive.Write3dmStartSection( version, "Archive created by ON_WriteOneObjectArchive " __DATE__ " " __TIME__ );
    

    構文解析方法の変更により隣接する文字列リテラルの間にはスペースを挿入する必要があります。

  • surface\include\pcl\surface\3rdparty\poisson4\hash.h
    3-4 line (add)

    #define _SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS
    #include <hash_map>
    

    非標準ヘッダ<hash_map>はVisual Studio 2015で廃止、将来的に削除されます。
    この定義は一時的な措置としてエラーを抑制します。

* Pull Rewuest #1286がマージされました。1.8.0以降のリリースではこの修正は必要ありません。

@Sinmeth
Copy link

Sinmeth commented Feb 18, 2016

I have a problem when I in the first step of CMake with I don't know how to solve this problem the result are attached below.
Thanks you.
capture
](url)

@caesaralpha
Copy link

I have followed your instruction. I installed my all-in-one installer 1.8.0, on the default directory which is C:\Program Files\ PCL 1.8.0. When I tried to build using cmake I got this error. I have struggling for two week only for installing PCL into my visual studio. I need your help, as soon as possible. Thanks a lot.
1

@Abdo1994
Copy link

Abdo1994 commented Mar 7, 2016

aa
What to do with this error?

@kage991
Copy link

kage991 commented Jul 9, 2016

While building in microsoft visual studio i get this errors:
pcl-1.8.0\visualization\src\pcl_visualizer.cpp(1495): error C2440: 'static_cast': cannot convert from 'double' to 'pcl::visualization::LookUpTableRepresentationProperties'

note: Conversions between enumeration and floating point values are no longer allowed

pcl-1.8.0\visualization\src\pcl_visualizer.cpp(1741): error C2440: 'static_cast': cannot convert from 'double' to 'pcl::visualization::LookUpTableRepresentationProperties'

note: Conversions between enumeration and floating point values are no longer allowed

Can you please help me? Is there a workaround for this type of error?
mvs_error_c2440

@danlugli
Copy link

danlugli commented Dec 4, 2016

Dear UnaNancyOwen,
first of all, thank you for your work.
I installed PCL-1.8.0 witho your .exe installer on Windows 10.
A simple test program trying to write a PCD file, written and compiled with Visual Studio Community 2013 (Release, x64, /MT), gives the following errors:
Error 1 error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MT_StaticRelease' in About.obj C:\Users\danlu_000\Documents\wip\wxObjectMatcher\libboost_system-vc120-mt-1_61.lib(error_code.obj) wxObjectMatcher
Error 2 error LNK1104: cannot open file 'libboost_thread-vc120-mt-s-1_61.lib' C:\Users\danlu_000\Documents\wip\wxObjectMatcher\LINK wxObjectMatcher
It looks like:

  1. libboost_system-vc120-mt-1_61.lib is compiled with /MD instead of /MT
  2. libboost_thread-vc120-mt-s-1_61.lib is in effect missing, while libboost_thread-vc120-mt-1_61.lib is available.
    Do you have any suggestion for me?
    Thank you in advance
    Daniele

@danlugli
Copy link

danlugli commented Dec 5, 2016

Sorry, I see now that my last post is in the wrong place. It is not about building PCL with VS, but about building a test program with PCL installed from exe installer.

Best regards
Daniele

@zkailong
Copy link

I have a problem.I build PCL1.8.0 with VS2013.And I want to build all-in-one installers.But when I configure,generate and build by VS2013.I cannot find where the installers is.So could you please tell me where can I find it?Thanks a lot.

@nouei
Copy link

nouei commented Feb 22, 2017

Hi,
Thank you for your valuable comments.
Regarding to Building PCL 1.8.0 with Visual Studio
Boost

Boost_DATE_TIME_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_date_time-vc140-mt-1_61.lib
Boost_DATE_TIME_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_date_time-vc140-mt-gd-1_61.lib
Boost_FILESYSTEM_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_filesystem-vc140-mt-1_61.lib
Boost_FILESYSTEM_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_filesystem-vc140-mt-gd-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-1_61.lib
Boost_IOSTREAMS_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_iostreams-vc140-mt-gd-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-1_61.lib
Boost_MPI_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_mpi-vc140-mt-gd-1_61.lib
Boost_SERIALIZATION_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_serialization-vc140-mt-1_61.lib
Boost_SERIALIZATION_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_serialization-vc140-mt-gd-1_61.lib
Boost_SYSTEM_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_system-vc140-mt-1_61.lib
Boost_SYSTEM_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_system-vc140-mt-gd-1_61.lib
Boost_THREAD_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_thread-vc140-mt-1_61.lib
Boost_THREAD_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_thread-vc140-mt-gd-1_61.lib

usually debug libs must have -gd, but in above the release libs have -gd. furthuremore release files has smaller size then debug file as we can see in boost lib directory. I think it has been written reverse.

@sebastien247
Copy link

sebastien247 commented Feb 23, 2017

Hi, i have some errors on build ALL_BUILD project with Visual Studio 2015. specifically on project pcl_visualization and pcl_outofcore:

C:\Users\SD\Documents\PCL\Tuto\pcl-pcl-1.8.0\visualization\src\pcl_visualizer.cpp(1495): error C2440: 'static_cast': cannot convert from 'double' to 'pcl::visualization::LookUpTableRepresentationProperties'
  C:\Users\SD\Documents\PCL\Tuto\pcl-pcl-1.8.0\visualization\src\pcl_visualizer.cpp(1495): note: Conversions between enumeration and floating point values are no longer allowed
C:\Users\SD\Documents\PCL\Tuto\pcl-pcl-1.8.0\visualization\src\pcl_visualizer.cpp(1741): error C2440: 'static_cast': cannot convert from 'double' to 'pcl::visualization::LookUpTableRepresentationProperties'
  C:\Users\SD\Documents\PCL\Tuto\pcl-pcl-1.8.0\visualization\src\pcl_visualizer.cpp(1741): note: Conversions between enumeration and floating point values are no longer allowed
LINK : fatal error LNK1181: cannot open input file '..\lib\pcl_visualization_release.lib'
LINK : fatal error LNK1181: cannot open input file '..\..\lib\pcl_outofcore_release.lib'

thanks for your help.

Sébastien

Edit :
Fix : PointCloudLibrary/pcl#1634

@raghav2984
Copy link

Hi UnaNancyOwen,
Thank you for a detailed procedure. I would like to know if PCL can be used with VB.NET? As we would like to link PCL with our existing .NET projects, we would like to develop PCL program in .NET environment. Looking forward for your help.

Regards,
Raghav

@PatrickAllenCooper
Copy link

Hi there,

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

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

Hope this helped someone!

@KJChang
Copy link

KJChang commented Nov 3, 2018

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

@yoshiyama
Copy link

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

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

@UnaNancyOwen
Copy link
Author

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

@yoshiyama
Copy link

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

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