Building QuantLib 1.14 with Visual Studio 2019 preview

QuantLib development often lags the version of Visual Studio. Thus you need to do some manual tuning to build QL v1.14 in VS 2019. Generally, if you can, you shall so far stay by VS2017.

Building QuantLib was never an easy task, at least for a novice. Currently, QL can automatically recognize all versions of Visual Studio from 2010 to 2017. Given, your VS version is automatically recognized, you have to complete the steps, described in my QuantLib Notes on Page 3 (or in this post on nuclearphynance).

In case of VS 2019 you currently need the following additional actions:
1. Open the QL VS-Solution file as usual; as you can readily see, it does not recognize the VS 2019 and sets to VS 2010 by default.

2. Select all projects in Solution Explorer and choose Properties. Change Platform Toolset to Visual Studio 2019 (v142) and click Apply.

The version of Windows SDK will be set up to 10. You may need to change it to 8.1 (at least it was my case, although, to my best knowledge, I have done a complete installation of Visual Studio 2019).

3. Change as follows the QuantLib.props and auto_link.hpp files.

Now you can compile the project suite.
Generally, my first impression of VS 2019 is rather negative.
First of all, it hides the ReSharper in a SubMenu Extensions (in VS 2017 I can access ReSharper from the main menu).

Secondly, when I create a new project, I cannot configure its all properties by creation.

Last but not least, there are, so far, no boost visualizers for VS 2019, which are indispensable for a comfortable QL-debugging.

However, this VS 2019 is only a preview. The release will definitely be better and I will switch to it... unless I fully migrate to Linux 😉

Like this post and wanna learn more? Have a look at Knowledge rather than Hope: A Book for Retail Investors and Mathematical Finance Students

FinViz - an advanced stock screener (both for technical and fundamental traders)

Leave a Reply

Your e-mail address will not be published. Required fields are marked *