Question

I just started this simple Quantlib date class in VC++ Express 2010:

#include <iostream>
#include <sstream>

#include "ql/time/date.hpp"

int main(int, char* [])
{
     QuantLib::Date d(1, QuantLib::January, 2010);
     std::cout<<da<<std::endl;
 }

When I compiled it, this is one of the errors:

1>ql_inout.obj : error LNK2019: unresolved external symbol "public: __thiscall QuantLib::Date::Date(int,enum QuantLib::Month,int)" (??0Date@QuantLib@@QAE@HW4Month@1@H@Z) referenced in function _main

It must be something I didn't setup correctly in 2010 project. I have compiled the library in Debug mode successfully.

Était-ce utile?

La solution

Not all headers include the pragma that tells the linker to add QuantLib. If you don't want to include the full headers—which is advisable, as they would increase a lot your compilation time—you can add

#include <ql/auto_link.hpp>

to the included headers.

(You could also add the library explicitly to the linker options, but that is a lot more work since you have to specify different library names depending on the configuration. auto_link.hpp does this for you.)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top