1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Windows環境でlibvpxをビルドする

Last updated at Posted at 2018-11-10

libvpxをWindows環境で使いたい。けど、今一つ手順が良く分からない。
libvpxを、Windows環境でソースからビルドする方法を記します。

Windows向けのビルド環境構築

libvpxは、ビルドの自動化をmakeによって提供しています。
Visual Studioを使用するオプションも提供されていますが、Windowsでmakeを実行できる環境を整える必要があります。
githubのREADMEでは、Cygwinをお勧めしていますが、ここでは最新のWindows 10ならではの方法で解決したいと思います。

Bash on Ubuntu on Windows

Anniversary Update以降のWindows 10であれば、Bash on Ubuntu on Windowsを導入することでbashを使うことができます。
(最近、Windows Subsystem for Linuxに名前が変わったそうです)

> sudo apt-get install make

Yasmのインストール

libvpxは、x86をターゲットにする場合はYasmを要求します。
yasmをここからダウンロードし、実行ファイルの名前を、yasm-<version>-<arch>.exe から yasm.exe に変更します。
これはVisual Studioのカスタムビルドによって参照されるため、パスの通った場所に置いておく必要があります。

(オプション)MSBuildのパスを通す

makeからlibvpxのビルドまでを行いたい場合は、MSBuildへのパスを通しておく必要があります。
makeによって生成されたプロジェクトファイルから、普段通りにビルドする場合は必要ありません。

Visual Studioのプロジェクトファイルを生成する

まずbashを立ち上げ、libvpxのディレクトリへ移動します。
ここでは、x86向けのディレクトリを作成し、その中にvs15向けのソリューションファイルとプロジェクトファイルを作成する手順を説明します。
プロジェクトファイルの生成にはconfigureコマンドを使用します。

> mkdir x86
> cd x86
> ../configure --help
> ../configure --target=x86-win32-vs15 --disable-docs --disable-tools --disable-examples --disable-webm-io --disable-vp8-encoder --disable-vp9-encoder

オプションについては、必要であれば有効にしてください。
この時点で、ソリューションファイルを生成するためのMakefileが作成されます。

> make

問題がなければソリューションファイルとプロジェクトファイルが出力された後に、MSBuildからビルドが開始されます。
x86_64や他のプラットフォームも同様の手順でビルド環境を用意できます。

PS4向けのビルド環境構築

PS4向けのvs15プロジェクトファイルの生成にはいくつかの手順が必要になります。
まず、x86_64向けに生成したプロジェクトファイルを開き、プロパティからPS4向けのツールチェインに変更します。
そして、threading.hvpx_thread.hで、pthreadの定義を用意します。
これはPS4向けの専用APIを使用するか、pthreadライブラリをリンクする必要があります。
あとはWindows環境と同様です。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?