Skip to content

Instantly share code, notes, and snippets.

@qmpham
Forked from UnaNancyOwen/PCL1.10.0.md
Last active August 29, 2015 14:17
Show Gist options
  • Save qmpham/52fd53c94bf0ee8b78f2 to your computer and use it in GitHub Desktop.
Save qmpham/52fd53c94bf0ee8b78f2 to your computer and use it in GitHub Desktop.

Building PCL 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_ROOT C:\Program Files\VTK

CMake

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

    • Where is the source code: C:\PCL-master
    • Where is build the binaries: C:\PCL-master\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-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)
  4. 設定内容を確認する。

    • 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)
  5. [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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment