Point Cloud Library is available in Vcpkg

What is Package Management System?

パッケージ管理システムはソフトウェアやライブラリのインストールや依存関係の解決などの管理を行うためのシステムです。
LinuxのAPTやYum、MacのMacPortsやHomebrewなど広く利用されています。
また、WindowsではC#などのManaged Language向けにNuGetが利用されています。

What is Vcpkg?

VcpkgはVisual C++向けのライブラリを管理するパッケージ管理システムです。
CMakeベースのパッケージ管理システムになっており、GitHubでオープンソースで開発されています。
このVcpkgを利用することで、様々なライブラリを簡単に導入することができます。インストールやプロジェクトの設定などライブラリごとに異なるこれらの作業をすべてVcpkgのコマンドで行うことができます。

VcpkgはVisual C++ 2017とVisual C++ 2015に対応しています。
BoostOpenCVをはじめ、すでに300以上のライブラリをサポートしています。
サポートしているライブラリはportsディレクトリやvcpkg searchコマンドで参照してください。

Vcpkg Support PCL

Point Cloud Library (PCL)は3次元点群処理向けのオープンソースのライブラリです。
点群処理に関する様々な機能を持つライブラリですが、依存関係が多く導入が難しいとされています。

そこで、誰でもPCLを簡単に導入できるようにVcpkgでサポートしました。
以下のコマンドを実行することで依存ライブラリを含め簡単にインストールすることができます。

# x86 dynamic link library
vcpkg install pcl:x86-windows

# x64 dynamic link library
vcpkg install pcl:x64-windows

# x86 static link library
vcpkg install pcl:x86-windows-static

# x64 static link library
vcpkg install pcl:x64-windows-static
  • Update 2017/11/02
  • 依存ライブラリを指定することができるFeature Packagesに対応しました。
    Feature Packagesはvcpkg install <package>[features]のように依存ライブラリを指定することができます。
    PCLではOpenNI2、Qt、PCAPを有効にすることができます。

    	# Build PCL with OpenNI2, Qt and PCAP
    	vcpkg install pcl[openni2,qt,pcap]:x64-windows --featurepackages
    	

How to install Vcpkg

Vcpkgは非常に簡単にインストールできます。

  1. Vcpkgをダウンロード、任意の場所に展開する(e.g. C:\vcpkg)
  2. 以下のリンクからダウンロードすることができます。

  3. Vcpkgをビルドする
  4. vcpkg\bootstrap-vcpkg.batを起動すると自動的にビルドされます。
    ビルドが正常に完了するとvcpkg\vcpkg.exeが生成されます。

    環境変数Pathを設定しておくと便利でしょう。

    Variable Value
    Path ;C:\vcpkg
  5. Vcpkgが正常にインストールされているかどうか確認する
  6. PowerShellを開いて以下のコマンドが実行してみましょう。

    	vcpkg
    	

    以下のようなVcpkgのヘルプが表示されれば正常にインストールされています。

Basic Commands

Vcpkgでよく使う基本的なコマンドは以下の通りです。
この6種のコマンドだけ使えればVcpkgをマスターしたも同然です。

  • vcpkg install <pkg>:[triplet] / vcpkg remove <pkg>:[triplet]
  • パッケージをインストールまたはアンインストールします。
    そのさい、パッケージの依存ライブラリも一緒にインストールされます。

    明示的にターゲット(triplet)を指定しない場合、x86のdynamic link libraryをインストールします。他のターゲットを利用する場合、パッケージ名の後ろに指定します。

    パッケージはvcpkg/installed/<triplet>にインストールされます。

    	# x86 dynamic link library (default)
    	vcpkg install boost:x86-windows
    	
    	# x86 static link library
    	vcpkg install boost:x86-windows-static
    	
    	# x64 dynamic link library
    	vcpkg install boost:x64-windows
    	
    	# x64 static link library
    	vcpkg install boost:x64-windows-static
    	
    	# x86 dynamic link library (default)
    	vcpkg remove boost:x86-windows
    	
    	# x86 static link library
    	vcpkg remove boost:x86-windows-static
    	
    	# x64 dynamic link library
    	vcpkg remove boost:x64-windows
    		
    	# x64 static link library
    	vcpkg remove boost:x64-windows-static
    	
  • vcpkg search
  • 現在サポートしているパッケージ一覧を表示します。

    	# List Supported Packages
    	vcpkg search
    	
  • vcpkg list
  • 現在インストールされているパッケージ一覧を表示します。

    	# List Installed Packages
    	vcpkg list
    	
  • vcpkg integrate install / vcpkg integrate remove
  • すべてのVisual C++のプロジェクトでインストールされたパッケージを利用できるようにします。それぞれのプロジェクトで設定を行う必要はなく、そのままライブラリを利用してプログラムを開発することができます。

    設定するときはvcpkg integrate install、解除するときはvcpkg integrate removeを一度だけ実行します。

    	# Integrate
    	vcpkg integrate install
    	
    	# UnIntegrate
    	vcpkg integrate remove
    	

How to Generate Own Projects that use Installed Packages?

Vcpkgでインストールしたライブラリを自分のプロジェクトで使用するには以下の方法があります。

  • Vcpkgのコマンドを利用する方法
  • 一度だけ以下のコマンドを実行することで、新規に作成したプロジェクトや既存のプロジェクトを含むすべてのプロジェクトで特別な設定をすることなくライブラリを利用することができます。

    	# Integrate Vcpkg Settings to All Visual C++ Projects
    	vcpkg integrate install
    	
  • CMakeでプロジェクトを生成する方法
  • CMakeListsをもとに設定済みのプロジェクトを生成します。
    これまで利用していたCMakeListsに以下の行を加えるだけでfind_package()はVcpkgのライブラリを探索します。

    	 # Setting to use Vcpkg
    	set( CMAKE_TOOLCHAIN_FILE "C:/vcpkg/scripts/buildsystems/vcpkg.cmake" )
    	
  • 手動で設定する方法

Reference

Vcpkgのドキュメントは以下にあります。
バグの報告や質問、リクエストなどありましたらissuesに登録してみましょう。

 


「Point Cloud Library is available in Vcpkg」への5件のフィードバック

  1. vcpkg install pcl:x64-windows
    コマンドを実行したのですが
    libpng のパッケージをインストールする所で失敗してしまいます。
    (sourceforce にあるlibpngのパッケージが
    older-releases に移動したせいでurl が変更になった?)

    1. sirokujiraさん、

      あらかじめchcp 65001で文字コードをUTF-8に変更しておく必要がありましたが、それ以外は問題はありませんでした。
      ダウンロード先のサーバーがダウンしていたりすると失敗することがあります。その場合は少し時間を置いてから再度お試しください。
      それでも解決しない場合は、Vcpkgのissuesに問題を投稿してください。

    2. 再度、最新のソースコードを落として来て確認した所
      pcl のパッケージをインストールしたことを確認できました。
      (MSMPIのインストーラーが入っていなかったので
      途中でエラーになりましたが downloadsフォルダにある
      MSMpiSetup インストーラーを実行後にパッケージの
      インストールを再開すれば問題なかったです。[Issue 1605]
      )

  2. Hi thank you for your tutorial on how to install pcl from vcpkg. It is helpful. I am curious what’s next steps after I successfully install the pcl. Should I just open it in VS 2017 and build project from there? I am totally newbie to pcl and really want to test on using it. Appreciate if you are willing to show me hows or any reference sites. Thank you very much!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です