ディズニーからのオープンソースライブラリ「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です。
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」にコピーしてください。
参考サイト
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」