Options

在我的 C++ 程序中使用 quantlib 函式

  • April 11, 2014

我想在我自己的 C++ 程式碼中包含用於選項希臘計算的 QuantLib 函式。我的問題是:我可以只包含這些功能嗎?我不想用他們剩下的東西。

我顯然不能只寫:

QuantLib::europeanOption.delta()

我已經包含了標題:

#include <ql/quantlib.hpp>

using namespace QuantLib;

我希望他們有一些好的文件。

這是題外話,可能屬於 StackOverflow,但在這裡。

1.編譯QuantLib

最好的方法是使用程序→Microsoft Visual Studio→Visual Studio 工具下的快捷方式打開*Visual Studio 命令提示符。*現在,您需要導航到QuantLib您擁有 QuantLib 的文件夾內的文件夾(還有其他文件夾,例如QuantLibXL- 這不是您需要的文件夾。

現在,通過執行以下命令編譯整個 QuantLib msbuild /t:Rebuild /p:Configuration=Release QuantLib_vc10.sln

在此文件夾中,如果您查看該lib文件夾,您將獲得一個名為 lib 的文件QuantLib-vc<VER>-mt.lib和一個帶有-gd後綴的相應文件。您需要這些庫以及標頭。

2.配置標頭

右鍵點擊項目並選擇屬性。現在,確保在視窗左上角的配置下拉列錶框中選擇所有配置。首先,導航到 ConfigurationProperties→C/C++→General。在Additional Include Directories中,添加 QuantLib 目錄的路徑。如果您添加該<QL Root>\QuantLib目錄,您將能夠使用諸如#include <ql/someheader.hpp>. 如果你做得正確並且你使用的是 VS2010,IntelliSense 將立即啟動,這意味著如果你輸入#include <ql/,VS 會顯示一個帶有標題的幫助列表(這很有用)。

3.配置庫引用

現在,向下導航到配置屬性→連結器→正常。在Additional Library Directories中,添加 QuantLib\lib目錄的路徑。

現在向下移動到連結器標題下的輸入標題。編輯Additional Dependencies欄位,在其前面加上 QuantLib 庫文件的名稱——您需要指定需要包含的文件的文件名(不包括完整路徑)。該文件用於發布版本和調試版本。如果你把這些搞砸了,你會得到錯誤。.lib``-mt.lib``-mt-gd.lib

4.執行它

到現在為止,假設你的 VS\include文件夾中有 boost 庫,下面的程式碼應該可以正常編譯和執行:

//first line is required in .NET
#include "stdafx.h"
#include <iostream>
#include <ql/quantlib.hpp>

using namespace std;
using namespace QuantLib;

void main()
{
 boost::shared_ptr<Money> m(new Money);
 cout << m->value() << endl;

 getchar();
}

您對程式、動態連結、Makefile 和其他方面的自在程度如何?

本質上,這裡沒有魔法。QL 有一個非常自由的許可證,你“僅僅”必須設置你的項目,以便它找到

  • 編譯期間的 quantlib 標頭檔(以及因此的 Boost 標頭檔)
  • 連結期間的 quantlib 庫

並且這兩個都可以通過分別呼叫quantlib-config適當的標誌--clags和來自動化--libs

實際上與連結到任何其他外部庫沒有什麼不同。

引用自:https://quant.stackexchange.com/questions/1776