在Windows下编译运行QuantLib
来源:互联网 发布:永久免费域名申请 编辑:程序博客网 时间:2024/05/22 02:13
摘要:QuantLib项目的目标是为金融领域的量化计算提供一个全面的软件框架。QuantLib是一个C++语言实现的开源库,在现实世界中建模、交易和风险管理等领域有着广泛的应用。
QuantLib 是一个开源的服务于金融领域量化计算的综合的软件框架。QuantLib是纯C++语言实现的。它为量化分析人员和C++程序开发人员提供了丰富的数学和统计学工具,为股票,期权,期货以及互换等金融工具的定价提供了一个系统级的框架。QuantLib现在已经移植到Java、C#、Perl意见Ruby等很多平台上。
本文将向读者介绍如何在Windows机器上从源代码编译和运行QuantLib程序。
QuantLib是C++开发的,所以首先读者的机器上需要安装C++的编译和开发工具,微软的Visual Studio是微软平台上应用最广泛的C++集成开发环境,QuantLib的开发人员在Windows平台上的也是使用Visual Studio进行开发的。所以推荐读者在Windows平台下使用Visual Studio开发环境编译和运行QuantLib。QuantLib源代码所带的Visual Studio 项目文件包括VC7、VC8、VC9、VC10和VC11,分别对应Visual Studio 2003、Visual Studio 2005、Visual Studio 2008、Visual Studio 2010 和Visual Studio 2012。所以安装其中的任何一个Visual Studio版本都可以。本人使用的是Visual Studio 2010,不同版本可能略有不同,但是大致应该是一致的。
如果机器已经安装好Visual Studio后,就开始下载编译QuantLib需要的源代码吧。QuantLib代码包可以在sourceforge.net上下载,QuantLib的代码也在GitHub上发布,读者也可以选择在GitHub上fork项目。本人是从sourceforge.net网站上下载源代码包的,进入下载页面后,选择最新的版本下载QuantLib的源代码包,本人写这篇文章时,当前最新稳定版本是1.3,下载完成后得到文件QuantLib-1.3.zip。
QuantLib唯一依赖的第三方库是Boost,Boost是一个C++类库,有源代码和二进制库两种发布方式,编译QuantLib只需要C++头文件和静态库文件就够了,所以直接下载Boost二进制库就可以了,进入Boost二进制库包下载页面,选择最新的稳定版本,当前是1.54.0,可以看到下载文件列表,选择对应的安装包文件,比如本文的机器Widnows 32位和Visual Studio 2010,所以选择boost_1_54_0-msvc-10.0-32.exe 这个文件,注意VC的版本和操作系统位数。Boost二进制库是可执行解压文件,直接点击安装就可以把Boos头文件和预编译的二进制库解压到指定的文件夹,本人把文件解压在D:\lib-repo\boost_1_54_0,该文件夹下的boost文件夹就是boost库的头文件所在的文件夹,文件夹lib32-msvc-10.0里面包含的就是预编译好的二进制库文件。
所需要的文件包都下载后后,开始准备在用Visual Studio编译QuantLib项目。把下载后的QuantLib源代码zip包解压到读者自己习惯的C++开发目录下,可以看到解压后的文件夹中目录结构,该目录中有多个不同版本的Visual Studio的.sln文件,也就是Visual Studio的Solution文件,选择对应版本的.sln文件,双击该文件,就可以在Visual Studio中打开整个QuantLib项目了。
设置好boost库的相关路径后,可以开始编译了,右键点击解决方案,选择“生成解决方案”,等待一段时间(编译过程比较长),等待编译结束,没有提示错误就表示成功了。
可以运行其中的某个例子,看看结果。右键点击项目“Bonds”,点击“调试”->“启动新实例”,就能出来运行结果了。
下面读者可以在QuantLib基础上进行自定义开发了。
QuantLib 是一个开源的服务于金融领域量化计算的综合的软件框架。QuantLib是纯C++语言实现的。它为量化分析人员和C++程序开发人员提供了丰富的数学和统计学工具,为股票,期权,期货以及互换等金融工具的定价提供了一个系统级的框架。QuantLib现在已经移植到Java、C#、Perl意见Ruby等很多平台上。
本文将向读者介绍如何在Windows机器上从源代码编译和运行QuantLib程序。
QuantLib是C++开发的,所以首先读者的机器上需要安装C++的编译和开发工具,微软的Visual Studio是微软平台上应用最广泛的C++集成开发环境,QuantLib的开发人员在Windows平台上的也是使用Visual Studio进行开发的。所以推荐读者在Windows平台下使用Visual Studio开发环境编译和运行QuantLib。QuantLib源代码所带的Visual Studio 项目文件包括VC7、VC8、VC9、VC10和VC11,分别对应Visual Studio 2003、Visual Studio 2005、Visual Studio 2008、Visual Studio 2010 和Visual Studio 2012。所以安装其中的任何一个Visual Studio版本都可以。本人使用的是Visual Studio 2010,不同版本可能略有不同,但是大致应该是一致的。
如果机器已经安装好Visual Studio后,就开始下载编译QuantLib需要的源代码吧。QuantLib代码包可以在sourceforge.net上下载,QuantLib的代码也在GitHub上发布,读者也可以选择在GitHub上fork项目。本人是从sourceforge.net网站上下载源代码包的,进入下载页面后,选择最新的版本下载QuantLib的源代码包,本人写这篇文章时,当前最新稳定版本是1.3,下载完成后得到文件QuantLib-1.3.zip。
QuantLib唯一依赖的第三方库是Boost,Boost是一个C++类库,有源代码和二进制库两种发布方式,编译QuantLib只需要C++头文件和静态库文件就够了,所以直接下载Boost二进制库就可以了,进入Boost二进制库包下载页面,选择最新的稳定版本,当前是1.54.0,可以看到下载文件列表,选择对应的安装包文件,比如本文的机器Widnows 32位和Visual Studio 2010,所以选择boost_1_54_0-msvc-10.0-32.exe 这个文件,注意VC的版本和操作系统位数。Boost二进制库是可执行解压文件,直接点击安装就可以把Boos头文件和预编译的二进制库解压到指定的文件夹,本人把文件解压在D:\lib-repo\boost_1_54_0,该文件夹下的boost文件夹就是boost库的头文件所在的文件夹,文件夹lib32-msvc-10.0里面包含的就是预编译好的二进制库文件。
所需要的文件包都下载后后,开始准备在用Visual Studio编译QuantLib项目。把下载后的QuantLib源代码zip包解压到读者自己习惯的C++开发目录下,可以看到解压后的文件夹中目录结构,该目录中有多个不同版本的Visual Studio的.sln文件,也就是Visual Studio的Solution文件,选择对应版本的.sln文件,双击该文件,就可以在Visual Studio中打开整个QuantLib项目了。
设置好boost库的相关路径后,可以开始编译了,右键点击解决方案,选择“生成解决方案”,等待一段时间(编译过程比较长),等待编译结束,没有提示错误就表示成功了。
可以运行其中的某个例子,看看结果。右键点击项目“Bonds”,点击“调试”->“启动新实例”,就能出来运行结果了。
下面读者可以在QuantLib基础上进行自定义开发了。
0 0
- 在Windows下编译运行QuantLib
- 在 Windows 下编译运行 MUMPS
- 在windows下编译运行lua源程序
- 在Windows下编译与运行minicap
- 在windows命令行下编译*.java文件,并运行
- cocos2dx在windows下编译运行移植android项目
- WINDOWS下编译MYSQL5.1.73,在VS2008中运行
- Windows下使用MinGW在命令行编译运行C++程序
- 在Python中使用QuantLib
- 在Python中使用QuantLib
- OpendTect4.0.1在Windows的编译过程,在Debug状态下运行出R6034错,Release状态下可以运行!
- Hadoop在windows下运行
- 在windows下运行CTS
- Meteor 在windows下运行
- 在Windows下运行Make3d
- 在Windows下编译JOGL
- 在Windows下编译MySQLdb
- 在windows下编译pidgin
- html 基础乱码问题
- 翁恺C笔记|动态内存分配
- UVa 439 Knight Moves 骑士的移动
- 51nod-1107 斜率小于0的连线数量(逆序数+离散化)
- java基础知识之软件设计
- 在Windows下编译运行QuantLib
- JAVA反射机制
- 质因数分解和N以内的质数
- java基础知识之异常处理
- Android 百度最新地图隐藏 放大缩小按钮、指南针、缩放比例的方法
- DOS批处理命令之for命令
- 关于hibernate不会设置延迟加载json返回值出现session is close的异常
- 微信自动回复和自动抢红包实现原理(三):自动抢红包
- java基础知识之文本处理