SeExpr(v1)をWindows用にビルドする!

ディズニーからのオープンソースライブラリ「SeExpr」のビルド方法です。Linuxでは比較的簡単にビルドできるようですが、Windowsですと一筋縄では行きません。

SeExprって何!?っという方は、Tai Komatsuさんがコチラで詳しく書かれていますのでご参考ください。本家のページはコチラです(英語)

現在配布されているSeExprはV3のようですが、この記事の方法はV1になりますのでご注意ください。

環境整備編

SeExpr

GitHubからダウンロードし、適当な箇所に解凍します。のちのちの手順移行、保存場所を変えることが面倒になるので、あらかじめそれっぽい場所に解凍することをオススメします。

https://github.com/wdas/seexpr/

CMake

Windows用にビルドできるようにする為に、「CMake」というアプリケーションをダウンロードし、インストールします。僕が使用しているのは、バージョンが3.7.2のWindows win64-x64 Installerです。

https://cmake.org/download/

Bison

続いて「Bison」をダウンロード、インストールします。必ず、「c:\GnuWin32」にインストールしてください。

http://gnuwin32.sourceforge.net/packages/bison.htm

Flex

続いて「Flex」をダウンロード、インストールします。必ず、「c:\GnuWin32」にインストールしてください。

http://gnuwin32.sourceforge.net/packages/flex.htm

Sed

続いて「Sed」をダウンロード、インストールします。必ず、「c:\GnuWin32」にインストールしてください。

http://gnuwin32.sourceforge.net/packages/sed.htm

Tee

続いて、Unix風のコマンドライン用ツールをダウンロードしてください。

http://www.piedey.co.jp/softs/ntuxtl016.html

LZHを解凍し、「bin」の中にある「tee.exe」を「C:\GnuWin32\bin」にコピーしてください。

unistd.h

以下から追加のヘッダファイルをダウンロードし、「SeExpr\src\SeExpr」にコピーしてください。

unistd.hのダウンロード

参考サイト
http://d.hatena.ne.jp/deraw/20070517/1179334643

環境変数

インストールしたプログラムの一部が正しく認識するように、環境変数を修正します。

マイコンピューターで右クリックし、「プロパティ」を選び「システムの詳細設定」をクリックします。

環境変数(N)…」をクリックします。

システム環境変数」から「Path」を選び、「編集」をクリックします。

新規」をクリックし、「C:\GnuWin32\bin」を入力し、OKをクリックします。

設定を正しく反映させるために、PCを再起動させてください。

SeExprの調整編

SeExpr\CMakeLists.txt」を開き、「src/tests」と「src/doc」を、以下のようにコメントアウトします。

## Traverse subdirectories
ADD_SUBDIRECTORY (src/SeExpr)
#ADD_SUBDIRECTORY (src/tests)
#ADD_SUBDIRECTORY (src/doc)
ADD_SUBDIRECTORY (src/demos)

SeExpr\src\demos\CMakeLists.txt」を開き、「imageSynth」と「segraph」と「rman」を、以下のようにコメントアウトします。

#ADD_SUBDIRECTORY (imageSynth)
#ADD_SUBDIRECTORY (segraph)
#ADD_SUBDIRECTORY (rman)

SeExpr\src\SeExpr\CMakeLists.txt」を開き、「/dev/null」を「NUL」に置換します。

SeExpr\src\SeExpr\SeNoise.cpp」を開き、「int num=1<<d;」を「const int num=1<<d;」に修正します。

CMake編

CMakeを起動し、「Where is the source code」にSeExprのパスを設定し、「Where to build the binaries」に出力先を設定します。

Configure」をクリックし、「Specify the generator for this project」から、使用したいコンパイラを選択します。ここでは、Visual Studio 2015を選択しています。

BISON_EXE」「FLEX_EXE」「SED_EXE」が正しく認識しているか確認します。

Generate」をクリックし、Visual Studioのプロジェクトを作成します。「Generating Done」と表示されれば完了です。

Visual Studio編

CMakeで設定した出力先にある、slnファイルを開きます。

構成を「Release」に変更し、「ビルド」→「ソリューションのビルド」を実行します。

確認編

コマンドプロンプトを起動し、「<CMakeの出力先>\src\demos\release」に移動します。

asciiGraph sin(x)」を実行し、以下のようにグラフが表示されればOKです。

ヘッダ、DLL、LIBのコピー

以下のデータを、任意のディレクトリにコピーして使用します。

ヘッダファイル

「<SeExpr>\src\SeExpr」にあるヘッダファイル一式

LIBファイル

「<CMakeの出力先\src\SeExpr\Release>」にある「SeExpr.lib」

これはStatic Link用のLIBのようです。Dynamic Linkするには、__declspec(dllexport)をしないと行けないようです。

DLLファイル

「<CMakeの出力先\src\SeExpr\Release>」にある「SeExpr.dll」