LiBOVRを.libから.dllに変換する


概要

Oculus riftのtouch controllerを用いたアプリケーションをC#で書く必要があり、libをdllに変換しました。libをdllに変換する基本的な方法は、visual studioのプロジェクトでdll生成用のものがあるので、それを使う場合が多いです。しかし今回はlibのプロジェクトもしくはソリューションを用いてdllに変換します。ただし、以下の方法はOculus SDKのLiBOVRのみに適用できる方法かもしれないので、参考にする方は注意して頂けると幸いです!

実行環境

次に実行環境を示します。

Soft and Hard バージョン
Windows 10 pro 16.04
Oculus SDK 1.37.0
Visual studio 2015 Community Update 3

変換手順

今回の手順では、Oculus SDKのLiBOVRのディレクトリ内にあるVisual studio 2015用のプロジェクトを用いてdllを出力します。まずは、そのプロジェクトを開きます。該当のプロジェクトは、Oculusの公式ページからダウンロードできるOculus SDKの中にあるので、Oculus SDKをダウンロードします。

Oculus SDKをダウンロード

ダウンロード後、zipを解凍し、以下のディレクトリにある、プロジェクトを開きます。

\ovr_sdk_win_1.37.0\LibOVR\Projects\Windows\VS2015

以上が前準備となります。次に、dll用のVisual Studio 2015のプロジェクトの設定手順について述べます。

1. プロジェクト名を選択した状態で、右クリックし、プロパティを開きます。

2. 構成プロパティ -> プロジェクトの規定値 -> 構成の種類をダイナミックライブラリ(.dll)に変更します。

ここで、dllが生成されるディレクトリを変更する場合には、全般->出力ディレクトリの指定ディレクトリを変更します。

3. リンカー -> 入力 -> 追加の依存ファイルに、msvcrt.lib,winmm.lib,setupapi.libを追加します。

4. プロパティページの右下のOKを選択し、プロパティページを閉じます。

5. プロジェクトをリビルドし、dllを生成します。

生成されたdllは、全般->出力ディレクトリで指定しているディレクトリに出力されています。

まとめ

今回は、C#でアプリケーションを作るために、dllをlibから生成しました。次は、C#を用いたアプリケーションを作りたいと思います。また、上記の内容で間違っている箇所や、改善したほうが良い点等ありましたら教えていただけると嬉しいです!

参考にしたもの

https://forums.oculusvr.com/developer/discussion/7979/sdk-0-3-1-and-compiling-libovr-to-dll
https://stackoverflow.com/questions/40780047/build-lib-as-dll-instead