3D Sensor Advent Calendar 2019の5日目の記事です。
この記事ではAzure Kinect Sensor SDKをソースコードからビルドする方法を紹介します。
開発環境
以下の開発環境を使用しました。
- Windows 10
- Visual Studio 2019
- CMake 3.16.0
- Git for Windows 2.24.0
- Azure Kinect Sensor SDK v1.3.0
ビルド方法
-
GitでAzure Kinect Sensor SDKをクローンする。
以下のコマンドを実行してAzure Kinect Sensor SDKをクローンする。*1
この記事ではC:\Azure-Kinect-Sensor-SDK
にクローンしたとして説明します。git clone https://github.com/microsoft/Azure-Kinect-Sensor-SDK.git cd Azure-Kinect-Sensor-SDK git checkout -b v1.3.0 refs/tags/v1.3.0
-
CMakeでAzure Kinect Sensor SDKのビルドファイルを生成する。
CMake-GUIを管理者権限で起動、以下の操作を行う。*2-
ソースコードの入力先とソリューションファイルの出力先を指定する。
* Where is the source code: C:/Azure-Kinect-Sensor-SDK
* Where is build the binaries: C:/Azure-Kinect-Sensor-SDK/build -
[Configure]ボタンを押してターゲットとなるVisual StudioとPlatformを指定する。
* Specify the generator for this project Visual Studio 16 2019
* Optional platform for generator(if empty, generator uses: x64) x64 -
各種設定を行う。(GroupedとAdvancedにチェックを入れるとわかりやすい。)
* BUILD-
BUILD_TESTING ☐(uncheck)
* CMAKE - CMAKE_INSTALL_PREFIX C:/Program Files/K4A *2
-
BUILD_TESTING ☐(uncheck)
-
[Configure]ボタン、[Generate]ボタンを押してVisual Studioのビルドファイルを出力する。
-
[Open Project]ボタンを押してVisual Studioを起動する。
-
-
Visual StudioでAzure Kinect Sensor SDKをビルドする。
- Visual Studioでソリューション構成をRelWithDebugに設定する。
- ALL_BUILDプロジェクトをビルドする。
-
Visual StudioでAzure Kinect Sensor SDKをインストールする。
- INSTALLプロジェクトをビルドする。
- CMAKE_INSTALL_PREFIXで指定したディレクトリ(C:/Program Files/K4A)にインストールされる。
-
Azure Kinect Sensor SDKのインストーラー、またはNuGetのパッケージからdepthengine_2_0.dllをコピーする。
- K4A/binディレクトリにdepthengine_2_0.dllをコピーする。*4
環境変数
- 環境変数PathにAzure Kinect Sensor SDKのパスを追加する。
- C:\Program Files\K4A\bin
まとめ
Azure Kinect Senosr SDKをソースコードからビルドする方法を紹介しました。
ソースコードからビルドする方法を知っておくと、バグに遭遇したとき内部まで詳しく調べることができるようになります。
また、k4aConfig.cmakeなどのCMakeでAzure Kinect Sensor SDKを検出するために必要なファイルもインストールされます。
CMakeでプロジェクトを管理するときに大変便利になります。
明日12/6(金)はd_forestさんで「C++初心者がKinectV2 + PCLでトラッキングした話」です。私はPCLのコミッターをしているので個人的にとっても楽しみにしています!
1. Azure Kinect Sensor SDKは依存関係をgit submoduleで管理しているため、ZIPでダウンロードすると依存関係を自動的に解決できません。必ずgit cloneでダウンロードしてください。
2. CMake-GUIを管理者権限で起動しておくと[Open Project]ボタンを押して起動したVisual Studioも管理者権限で起動します。これはINSTALLプロジェクトでインストールするときに権限関連でエラーになるのを防ぐことができます。もしINSTALLプロジェクトをビルドしたときにエラーになったときは、Visual Studioが管理者権限で起動しているか確認しましょう。
3. CMAKE_INSTALL_PREFIXはINSTALLプロジェクトでインストールされるディレクトリです。デフォルトではC:/Program Files (x86)/...になっているため、ターゲットプラットフォームがx64の場合は手動でC:/Program Files/...に変更しておきましょう。
4. depthengine_2_0.dllはクローズドソースなため自分でビルドすることはできません。Azure Kinect Sensor SDKのインストーラーまたはNuGetパッケージに含まれて配布されています。Azure Kinect Sensor SDKをソースコードからビルドした場合はこれらからdepthengine_2_0.dllを手動でコピーしてくる必要があります。