1. QuantLibを使ってみる
1.1 ダウンロードとインストールとビルド
1.1.5 QuantLib ソリューションのビルド
1.1.5.1 QuantLib.sln ファイル
さて、Visual Studio、 QuantLib、boost がすべてインストールされたので、試しに QuantLib ソリューションファイルをビルドしてみましょう。
まずVisual Studio (2022)を起動します。すると、プロジェクト生成用の初期画面が登場するので、そこで右側にある“プロジェクトやソリューションを開く”を選択します。すると、どのプロジェクトを選択するか聞いてくるので、QuantLib のディレクトリから、QuantLib.sln という名前のファイルを探し、それをオープンします。
QunatLib.sln ファイルが開かれると Visual Studio のメイン画面が登場し、そこにある “ソリューションエクスプローラー”に、QuantLibソリューション内のプロジェクトがリストアップされます。そこにあるExamples フォルダーを展開すると、19 個のプロジェクトが出てきます。下記画面の通り、QuantLib ソリューションは、QunatLib のお試し用のサンプル・プロジェクトが 19個と、QuantLib自体のプロジェクト、及び testsuite プロジェクトの合計 21個のプロジェクトから成っています。
Examples下にあるプロジェクトは、様々な金融商品の価格計算エンジンを試すために作られたプロジェクトです。実践編では、それぞれについて、そのソースコードを見ながら QuantLib の使い方を解説する予定です。
QunatLib という名前のプロジェクトは、static library を生成するプロジェクトです。QuantLib にあるすべてのソースコードから、static library を生成し、libディレクトリに保存します。Static library は実行ファイル(.exeファイル)では無いので、それら単独では実行できず、他のプロジェクトで実行ファイルをビルドする際に、その実行ファイルに取り込まれて使われます。
(注:ソリューションエクスプローラーで表示されているプロジェクトリストの中で、QuantLibプロジェクトのみ太字になっています。これは、ソリューションファイルを構成している複数のプルジェクトのなかで、太字のプロジェクトが、”スタートアッププロジェクト”に設定されている事を意味します。 後で、Examples下にあるプロジェクトを実行する際、スタートアッププロジェクトを、その実行されるプルジェクトに変更する必要があります。)
Testsuite は、QuantLib の主要なモジュールのテストを行うアプリケーション(実行ファイルを生成する)プロジェクトです。
1.1.5.2 QuantLib プルジェクトのビルド
最初に QuantLib プロジェクトをビルドします。先ほどのソリューションエクスプローラーの画面で、QunatLib プロジェクトを選択し、マウスの右クリックから、プロパティを選択します。(Visual Studio画面の上部にあるメニューリストから、プロジェクト(P)→プロパティ(P)でも選択できます)すると、次のような画面が登場します。“構成の種類”が“スタティックライブラリ(.lib)”になっているのが確認できます。すなわち、このプロジェクトは、アプリケーションではなく、static library(.libファイル)を生成するプロジェクトです。
< プロジェクトプロパティの設定 >
プロジェクトをビルドする前に、上記の画面にあるプロパティページから、ビルドする際のオプションを設定します。
- まずプロパティの上部にある“構成(C)”から、”すべての構成“を選択し、”プラットフォーム(P)“から、すべての”プラットフォーム“を選択します。(上記の画面の上部参照)
- 次に、先ほどダウンロードした、コンパイル済のboostのライブラリへのパスを設定します。上記のプロパティ画面の左側にある“構成プロパティ”の中からVC++ディレクトリを選択します。そして、下記画面にある通り、右側の”インクルードディレクトリ“として、boostライブラリが保管されているディレクトリを指定します。(下記の例では、boostライブラリは、c:ドライブ下の\local\boost_1_83_0 という名前のディレクトリに保存されてるので、それを選択しています。) また、”ライブラリディレクトリ“として、コンパイル済みのboost libraryが保管されているディレクトリを選択します。(下記の例では、libraryファイルは、\local\boost_1_83_0ディレクトリのサブディレクトリにあるlib64-msvc-14.3に保存されているので、それを選択します。)
これでプロパティの設定は終わりました。次にビルドに移ります。
< プロジェクトのビルド >
以上のプロパティの設定が終われば、ビルド開始です。但し、その前に、Visual Studio 画面の上段から2番目にある、構成マネージャーで、ターゲットとなる構成とプラットフォームを選択します。ターゲットとは、生成された library が実際に使われる用途(Debug用なのか、Release用なのか)と、実際に使われるプラットフォーム(WindowsとIntelのCPUが、32ビット用なのか、64ビット用なのか)の事です。
選べる構成は、Debug, Debug(static runtime), Release, Release(static runtime)の4種類ありますが、適当なものを選択して下さい。プラットフォームは、現在自分が使っている Windows と CPU のビット数に合わせて下さい。最近では、Windows10あるいはWindows11で、64ビットCPUが主流なので、その場合はx64を選択して下さい。
では、ビルドの開始です。エクスプローラーにある QuantLib プロジェクトを選択し、マウスの右クリックから“ビルド”を選択すると、ビルドが開始されます。
(上部のメニューリストから“ビルド(B)” →“QuantLibのビルド(U)”を選択しても同じです。)
ビルドには数分から数十分かかりますが、下記画面が、出力ウィンドウに出てくれば成功です。C4819の警告メッセージが多数出てくると思いますが、ソースコードのコメント部分で使われている文字コードが読めないのが原因で、プログラム自体に問題はありません。
失敗した場合は、数多くのエラー表示が出てくると思います。エラーが起こる理由の大半は、上記のプロジェクト・プロパティでのパス設定ミスだと思うので、再度それらを確認して下さい。それ以外の理由の場合、エラー表示の内容を確認しながら、自分で原因を調べなければなりません。この場合、C++でのプログラミングに習熟していないと、自分で原因を見つけるのは簡単ではありませんが、下記のようなサイトで原因と修復方法を探して下さい。
- MicrosoftのVisual Studioのチュートリアルサイト: Visual Studio の C/C++ プロジェクトとビルド システム
- QuantLibのメーリングリスト: QuantLib Mailing Lists(ビルド時のエラーに関する多数の質問と回答があります)
ビルドに成功した場合、QuantLib-1.32 ディレクトリ下の “lib” サブディレクトリに
QuantLib-x64-mt-gd.lib、 QuantLib-x64-mt-sgd.lib
あるいは
QuantLib-x64-mt.lib QuantLib-x64-mt-s.lib
といった名前で、libraryファイルが生成されているのが分かります。それぞれ、ターゲットの構成にDebug, Debug(static runtime),あるいは Release, Release(static runtime) を設定した場合に対応します。
<ライセンス表示>
QuantLibのソースコードを使う場合は、ライセンス表示とDisclaimerの表示が義務付けられているので、添付します。 ライセンス