Skip to content

Instantly share code, notes, and snippets.

@wangguojun2018
Forked from UnaNancyOwen/PCL1.10.0.md
Created August 13, 2018 02:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save wangguojun2018/a4c0506b98de6bfca0f470f8976b2239 to your computer and use it in GitHub Desktop.
Save wangguojun2018/a4c0506b98de6bfca0f470f8976b2239 to your computer and use it in GitHub Desktop.
Building PCL with Visual Studio

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

    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-1_64.lib
    • Boost_ATOMIC_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_atomic-vc141-mt-gd-1_64.lib
    • Boost_CHRONO_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_chrono-vc141-mt-1_64.lib
    • Boost_CHRONO_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_chrono-vc141-mt-gd-1_64.lib
    • Boost_DATE_TIME_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_date_time-vc141-mt-1_64.lib
    • Boost_DATE_TIME_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_date_time-vc141-mt-gd-1_64.lib
    • Boost_FILESYSTEM_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_filesystem-vc141-mt-1_64.lib
    • Boost_FILESYSTEM_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_filesystem-vc141-mt-gd-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-1_64.lib
    • Boost_IOSTREAMS_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_iostreams-vc141-mt-gd-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-1_64.lib
    • Boost_MPI_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_mpi-vc141-mt-gd-1_64.lib
    • Boost_REGEX_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_regex-vc141-mt-1_64.lib
    • Boost_REGEX_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_regex-vc141-mt-gd-1_64.lib
    • Boost_SERIALIZATION_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_serialization-vc141-mt-1_64.lib
    • Boost_SERIALIZATION_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_serialization-vc141-mt-gd-1_64.lib
    • Boost_SYSTEM_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_system-vc141-mt-1_64.lib
    • Boost_SYSTEM_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_system-vc141-mt-gd-1_64.lib
    • Boost_THREAD_LIBRARY_DEBUG C:\Program Files\Boost\lib\libboost_thread-vc141-mt-1_64.lib
    • Boost_THREAD_LIBRARY_RELEASE C:\Program Files\Boost\lib\libboost_thread-vc141-mt-gd-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%
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment