• C++ Programming for Financial Engineering
    Highly recommended by thousands of MFE students. Covers essential C++ topics with applications to financial engineering. Learn more Join!
    Python for Finance with Intro to Data Science
    Gain practical understanding of Python to read, understand, and write professional Python code for your first day on the job. Learn more Join!
    An Intuition-Based Options Primer for FE
    Ideal for entry level positions interviews and graduate studies, specializing in options trading arbitrage and options valuation models. Learn more Join!

Tutorial: QuantLib Boost Installation in Visual Studio 2012

Joined
8/8/11
Messages
150
Points
288
  1. These are step-by-step instructions to install QuantLib and Boost on the Microsoft Visual C++ 2012 IDE
  2. These instructions are for MS Visual C++ 2012 only. If you have earlier versions of this IDE (2008, 2005...) then have a look at this page.
  3. Before using QuantLib you need to install the Boost library on your computer. Iinstructions om how to get Boost library follow in the next section.
Boost Installation
  1. The Boost library can be downloaded here. Currently, the latest version available is Boost 1.52.0.
  2. You can build boost by following the instruction here.
  3. Alternative you can download a pre-built lib from here. Once downloaded, copy the installer into the Boost 1.52.0 folder and run it. Rename the folder to lib once done.
Boost and QuantLib Installation
  1. Download QuantLib 1.2.1 compatible with VS 2012 from this page. With Boost 1.52.0 and QuantLib 1.2.1 installed , you can set the VC++ directories as follows.
  2. Open the solution file named QuantLib_vc11.sln ( …\QuantLib-1.2.1\ QuantLib_vc11.sln). This will open the 15 projects contained in the solution (see the picture, below).
  3. Sol.jpg
  4. Open the Property Manager window, (see View menu, Other Windows, Property Manager), locate the Microsoft.Cpp.Win32.user property sheet.
  5. Select Microsoft.Cpp.Win32.user property sheet as shown above, right click it and select Properties.
  6. por.jpg
  7. Add the folder … \boost_1_52 to Configuration Properties/VC++ Directories/Include Directories. Then, add the path to the folder … \boost_1_52\lib to Configuration Properties/VC++ Directories/Libraries Directories (see picture below).
    vc++.jpg
  8. Click ok to apply changes.
  9. Switch back to the Solutions Explorer, right-click on the solution icon and choose Build Solution to build all projects in the Release mode. Besides QuantLib, this will build the examples and run the test suite.
  10. After finishing, the output should show no errors and look like below:
  11. final.jpg
  12. You are done with building QuantLib. If you want, you can build the Debug version in the same way by choosing Debug from the configuration menu as shown below. This will allow you to debug your application later.

  13. debug.jpg
  14. To test QuantLib with the example here, go to VC++ Directories. You can see that the Boost folders are already there, so you don't have to do anything to configure them. Add the QuantLib path (….\QuantLib) to the include directories.
  15. Finally, you can add the QuantLib library path (….\QuantLib\lib) to the library directories, or you can go to Configuration Properties/Linker/Generaland add it to Additional Library Directories. Click OK.
  16. For more information refer to this link where I got most of the information for this tutorial -- Quantcorner.
 
For more information refer to this link where I got most of the information for this tutorial -- Quantcorner.

An excellent online resource, I presume ;)
Anyway, thank you for mentionning my blog site.
I have not been notified of your link to my blog by wordpress. Strange!
 
You're welcome. Enjoy QL :)
Hi, there still are some errors:

1> QuantLib_vc11.vcxproj -> C:\QuantLib-1.2.1\QuantLib-1.2.1\.\lib\QuantLib-vc110-mt.lib
2>------ Skipped Rebuild All: Project: testsuite, Configuration: Release Win32 ------
2>Project not selected to build for this solution configuration
3>------ Skipped Rebuild All: Project: Swap, Configuration: Release Win32 ------
3>Project not selected to build for this solution configuration
4>------ Skipped Rebuild All: Project: EquityOption, Configuration: Release Win32 ------
4>Project not selected to build for this solution configuration
5>------ Skipped Rebuild All: Project: ConvertibleBonds, Configuration: Release Win32 ------
5>Project not selected to build for this solution configuration
6>------ Skipped Rebuild All: Project: FRA, Configuration: Release Win32 ------
6>Project not selected to build for this solution configuration
7>------ Skipped Rebuild All: Project: Repo, Configuration: Release Win32 ------
7>Project not selected to build for this solution configuration
8>------ Skipped Rebuild All: Project: Replication, Configuration: Release Win32 ------
8>Project not selected to build for this solution configuration
9>------ Skipped Rebuild All: Project: BermudanSwaption, Configuration: Release Win32 ------
9>Project not selected to build for this solution configuration
10>------ Skipped Rebuild All: Project: DiscreteHedging, Configuration: Release Win32 ------
10>Project not selected to build for this solution configuration
11>------ Skipped Rebuild All: Project: FittedBondCurve, Configuration: Release Win32 ------
11>Project not selected to build for this solution configuration
12>------ Skipped Rebuild All: Project: CallableBonds, Configuration: Release Win32 ------
12>Project not selected to build for this solution configuration
13>------ Skipped Rebuild All: Project: CDS, Configuration: Release Win32 ------
13>Project not selected to build for this solution configuration
14>------ Skipped Rebuild All: Project: Bonds, Configuration: Release Win32 ------
14>Project not selected to build for this solution configuration
15>------ Skipped Rebuild All: Project: MarketModels, Configuration: Release Win32 ------
15>Project not selected to build for this solution configuration
========== Rebuild All: 1 succeeded, 0 failed, 14 skipped ==========

Could you help me? Thanks a lot!!!
 
Hi, there still are some errors:

1> QuantLib_vc11.vcxproj -> C:\QuantLib-1.2.1\QuantLib-1.2.1\.\lib\QuantLib-vc110-mt.lib
2>------ Skipped Rebuild All: Project: testsuite, Configuration: Release Win32 ------
2>Project not selected to build for this solution configuration
3>------ Skipped Rebuild All: Project: Swap, Configuration: Release Win32 ------
3>Project not selected to build for this solution configuration
4>------ Skipped Rebuild All: Project: EquityOption, Configuration: Release Win32 ------
4>Project not selected to build for this solution configuration
5>------ Skipped Rebuild All: Project: ConvertibleBonds, Configuration: Release Win32 ------
5>Project not selected to build for this solution configuration
6>------ Skipped Rebuild All: Project: FRA, Configuration: Release Win32 ------
6>Project not selected to build for this solution configuration
7>------ Skipped Rebuild All: Project: Repo, Configuration: Release Win32 ------
7>Project not selected to build for this solution configuration
8>------ Skipped Rebuild All: Project: Replication, Configuration: Release Win32 ------
8>Project not selected to build for this solution configuration
9>------ Skipped Rebuild All: Project: BermudanSwaption, Configuration: Release Win32 ------
9>Project not selected to build for this solution configuration
10>------ Skipped Rebuild All: Project: DiscreteHedging, Configuration: Release Win32 ------
10>Project not selected to build for this solution configuration
11>------ Skipped Rebuild All: Project: FittedBondCurve, Configuration: Release Win32 ------
11>Project not selected to build for this solution configuration
12>------ Skipped Rebuild All: Project: CallableBonds, Configuration: Release Win32 ------
12>Project not selected to build for this solution configuration
13>------ Skipped Rebuild All: Project: CDS, Configuration: Release Win32 ------
13>Project not selected to build for this solution configuration
14>------ Skipped Rebuild All: Project: Bonds, Configuration: Release Win32 ------
14>Project not selected to build for this solution configuration
15>------ Skipped Rebuild All: Project: MarketModels, Configuration: Release Win32 ------
15>Project not selected to build for this solution configuration
========== Rebuild All: 1 succeeded, 0 failed, 14 skipped ==========

Could you help me? Thanks a lot!!!


Hi again.

Well, I don't think there is any problem here. You compiler just recalls that 14 projects were skipped while the solution was built.

If you followed the steps from my blog, you must have unselected these 14 projects:


f) In the ‘Solution Explorer’ panel, right-click on ‘Solution_vc11’ (15 projects)’ and select ‘Properties’. In Configuration Properties/Configuration unselect all the project from ‘Build’ except the ‘QuantLib’ project.


(The reason for unselected is that boost is not installed -- there, in the case of my blog -- , but QL installation relies on boost header files only.)

The 'core' of QL is now installed on your computer. And you can start to write your pieces of code. Some example projects, the test-suite and other things are not installed .... but there are not compulsory.

If you want to check that works:
You can go to this page, create a new project in VS, make sure the QL files are visible to your compiler, paste the (ugly) snippet I wrote, and build the project.

HTH
Edouard
 
Hi again.

Well, I don't think there is any problem here. You compiler just recalls that 14 projects were skipped while the solution was built.

If you followed the steps from my blog, you must have unselected these 14 projects:





(The reason for unselected is that boost is not installed -- there, in the case of my blog -- , but QL installation relies on boost header files only.)

The 'core' of QL is now installed on your computer. And you can start to write your pieces of code. Some example projects, the test-suite and other things are not installed .... but there are not compulsory.

If you want to check that works:
You can go to this page, create a new project in VS, make sure the QL files are visible to your compiler, paste the (ugly) snippet I wrote, and build the project.

HTH
Edouard
Hi,

I follow your blog step by step to build Quantlib_vc11. But, now, when I try your sample code, it says "fatel error C1083: Cannot open include file: 'q1/quantlib.hpp': No such file or directory".

It is so weird. I checked my VC++ Directories and C/C++ General, however, I do not have librarian after C/C++, Linker instead of. So, I cannot finish "Eventually, add the path to the folder … /QuantLib-1.2.1/lib to Configuration Properties/Librarian/General.".
 
Hi again.

Well, I don't think there is any problem here. You compiler just recalls that 14 projects were skipped while the solution was built.

If you followed the steps from my blog, you must have unselected these 14 projects:





(The reason for unselected is that boost is not installed -- there, in the case of my blog -- , but QL installation relies on boost header files only.)

The 'core' of QL is now installed on your computer. And you can start to write your pieces of code. Some example projects, the test-suite and other things are not installed .... but there are not compulsory.

If you want to check that works:
You can go to this page, create a new project in VS, make sure the QL files are visible to your compiler, paste the (ugly) snippet I wrote, and build the project.

HTH
Edouard
Hi,

I followed this:

c) Add the path to the folder … \boost_1_52 to Configuration Properties/VC++ Directories/Include Directories. Then, add the path to the folder … \boost_1_52\libs to Configuration Properties/VC++ Directories/Libraries Directories (see in bold on the picture, below). Obviously, you click on ‘Apply’ for your changes to be taken into account.

And add the … /QuantLib-1.2.1/lib into the additional Library directories. Now, it could find the header file. But, the new error is:

cannot open file 'QuantLib-vc110-mt-gb.lib'.
 

Attachments

  • 未命名.jpg
    未命名.jpg
    222.7 KB · Views: 95
Hi,

I followed this:

c) Add the path to the folder … \boost_1_52 to Configuration Properties/VC++ Directories/Include Directories. Then, add the path to the folder … \boost_1_52\libs to Configuration Properties/VC++ Directories/Libraries Directories (see in bold on the picture, below). Obviously, you click on ‘Apply’ for your changes to be taken into account.

And add the … /QuantLib-1.2.1/lib into the additional Library directories. Now, it could find the header file. But, the new error is:

cannot open file 'QuantLib-vc110-mt-gb.lib'.


I think the problem is that you build the project (the matrix thing) in say 'release' mode while you built QL in say 'debug' mode (or the other way around).

At the beginning of my post, I wrote:
We will build the solution from within Visual Studio in Debug mode, here.

Did you pay attention to that?

I'm not an expert in compilers/compilation, but I think -mt-gb (in QuantLib-vc110-mt-gb.lib) tells that (in this case QL) was built in debug mode while -mt implies that it was built in release mode (maybe I'm wrong and this is the other way around).

Just make sure the matrix project (and any other projects with QL from now) is built in the same mode as QL on your computer.

Building QL in both release and debug mode is a good idea.

HTH
Edouard
 
Maybe that will help you a bit more.
In the message you wrote above, the error messages following the building of QL on your computer was (excerpt):
------ Skipped Rebuild All: Project: testsuite, Configuration: Release Win32 --
It clearly says that you built QL in release mode.
Did you try to build the matrix project in (the same mode that is) release mode?
 
Hey guys,

I still have this problem. I tried both RELEASE and DEBUG. What is the problem? Something wrong with the Boost lib?




1>------ Build started: Project: testsuite, Configuration: Debug Win32 ------
1>americanoption.obj : warning LNK4075: ignoring '/EDITANDCONTINUE' due to '/SAFESEH' specification
1>LINK : fatal error LNK1104: cannot open file 'libboost_unit_test_framework-vc110-mt-gd-1_52.lib'
========== Build: 0 succeeded, 1 failed, 14 up-to-date, 0 skipped ==========
 
I've included an error message window from VS2012.
Please have a look, no matter what I do I get this.

Thanks.
 

Attachments

  • error.JPG
    error.JPG
    82 KB · Views: 112
Back
Top