Hi,
I am a new user of quantlib (3 days). I am trying to build a variance swap pricer.
when i create a new empty project with utilities.hpp et cpp and varianceswaps.hpp cpp and try to buil it i have many link errors.
is possible to have a tutorial do build a varswaps pricer inspired by the testsuit exmple?
Regards
1>------ Début de la génération : Projet : VarSwap, Configuration : Release Win32 ------
1> varswap.cpp
1>utilities.obj : error LNK2001: symbole externe non résolu "void __cdecl boost::assertion_failed(char const *,char const *,char const *,long)" (?assertion_failed@boost@@YAXPBD00J@Z)
1>utilities.obj : error LNK2001: symbole externe non résolu "public: __thiscall QuantLib::BlackVolatilityTermStructure::BlackVolatilityTermStructure(class QuantLib::Date const &,class QuantLib::Calendar const &,enum QuantLib::BusinessDayConvention,class QuantLib::DayCounter const &)" (??0BlackVolatilityTermStructure@QuantLib@@QAE@ABVDate@1@ABVCalendar@1@W4BusinessDayConvention@1@ABVDayCounter@1@@Z)
1>utilities.obj : error LNK2001: symbole externe non résolu "public: __thiscall QuantLib::BlackVolatilityTermStructure::BlackVolatilityTermStructure(unsigned int,class QuantLib::Calendar const &,enum QuantLib::BusinessDayConvention,class QuantLib::DayCounter const &)" (??0BlackVolatilityTermStructure@QuantLib@@QAE@IABVCalendar@1@W4BusinessDayConvention@1@ABVDayCounter@1@@Z)
1>utilities.obj : error LNK2001: symbole externe non résolu "public: __thiscall QuantLib::FlatForward::FlatForward(class QuantLib::Date const &,class QuantLib::Handle<class QuantLib::Quote> const &,class QuantLib::DayCounter const &,enum QuantLib::Compounding,enum QuantLib::Frequency)" (??0FlatForward@QuantLib@@QAE@ABVDate@1@ABV?$Handle@VQuote@QuantLib@@@1@ABVDayCounter@1@W4Compounding@1@W4Frequency@1@@Z)
1>utilities.obj : error LNK2001: symbole externe non résolu "public: __thiscall QuantLib::FlatForward::FlatForward(unsigned int,class QuantLib::Calendar const &,class QuantLib::Handle<class QuantLib::Quote> const &,class QuantLib::DayCounter const &,enum QuantLib::Compounding,enum QuantLib::Frequency)" (??0FlatForward@QuantLib@@QAE@IABVCalendar@1@ABV?$Handle@VQuote@QuantLib@@@1@ABVDayCounter@1@W4Compounding@1@W4Frequency@1@@Z)
1>utilities.obj : error LNK2001: symbole externe non résolu "public: void __thiscall QuantLib::IndexManager::clearHistories(void)" (?clearHistories@IndexManager@QuantLib@@QAEXXZ)
1>utilities.obj : error LNK2001: symbole externe non résolu "public: static class QuantLib::Date __cdecl QuantLib::Date::maxDate(void)" (?maxDate@Date@QuantLib@@SA?AV12@XZ)
1>utilities.obj : error LNK2001: symbole externe non résolu "public: __thiscall QuantLib::Date::Date(void)" (??0Date@QuantLib@@QAE@XZ)
1>utilities.obj : error LNK2001: symbole externe non résolu "public: virtual void __thiscall QuantLib::TermStructure::update(void)" (?update@TermStructure@QuantLib@@UAEXXZ)
1>utilities.obj : error LNK2001: symbole externe non résolu "public: virtual class QuantLib::Date const & __thiscall QuantLib::TermStructure::referenceDate(void)const " (?referenceDate@TermStructure@QuantLib@@UBEABVDate@2@XZ)
1>utilities.obj : error LNK2001: symbole externe non résolu "public: virtual char const * __thiscall QuantLib::Error::what(void)const " (?what@Error@QuantLib@@UBEPBDXZ)
1>utilities.obj : error LNK2001: symbole externe non résolu "public: __thiscall QuantLib::Error::Error(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,long,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (??0Error@QuantLib@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@J00@Z)
1>utilities.obj : error LNK2001: symbole externe non résolu "public: void __thiscall QuantLib::Observable::notifyObservers(void)" (?notifyObservers@Observable@QuantLib@@QAEXXZ)
1>varswap.obj : error LNK2001: symbole externe non résolu "public: __thiscall QuantLib::BlackScholesMertonProcess::BlackScholesMertonProcess(class QuantLib::Handle<class QuantLib::Quote> const &,class QuantLib::Handle<class QuantLib::YieldTermStructure> const &,class QuantLib::Handle<class QuantLib::YieldTermStructure> const &,class QuantLib::Handle<class QuantLib::BlackVolTermStructure> const &,class boost::shared_ptr<class QuantLib::StochasticProcess1D::discretization> const &)" (??0BlackScholesMertonProcess@QuantLib@@QAE@ABV?$Handle@VQuote@QuantLib@@@1@ABV?$Handle@VYieldTermStructure@QuantLib@@@1@1ABV?$Handle@VBlackVolTermStructure@QuantLib@@@1@ABV?$shared_ptr@Vdiscretization@StochasticProcess1D@QuantLib@@@boost@@@Z)
1>varswap.obj : error LNK2001: symbole externe non résolu "private: static double const QuantLib::InverseCumulativeNormal::a2_" (?a2_@InverseCumulativeNormal@QuantLib@@0NB)
1>varswap.obj : error LNK2001: symbole externe non résolu "public: __thiscall QuantLib::EuropeanOption::EuropeanOption(class boost::shared_ptr<class QuantLib::StrikedTypePayoff> const &,class boost::shared_ptr<class QuantLib::Exercise> const &)" (??0EuropeanOption@QuantLib@@QAE@ABV?$shared_ptr@VStrikedTypePayoff@QuantLib@@@boost@@ABV?$shared_ptr@VExercise@QuantLib@@@3@@Z)
1>varswap.obj : error LNK2001: symbole externe non résolu "private: static double __cdecl QuantLib::InverseCumulativeNormal::tail_value(double)" (?tail_value@InverseCumulativeNormal@QuantLib@@CANN@Z)
1>varswap.obj : error LNK2001: symbole externe non résolu "public: __thiscall QuantLib::AnalyticEuropeanEngine::AnalyticEuropeanEngine(class boost::shared_ptr<class QuantLib::GeneralizedBlackScholesProcess> const &)" (??0AnalyticEuropeanEngine@QuantLib@@QAE@ABV?$shared_ptr@VGeneralizedBlackScholesProcess@QuantLib@@@boost@@@Z)
1>varswap.obj : error LNK2001: symbole externe non résolu "private: static double const QuantLib::InverseCumulativeNormal::a3_" (?a3_@InverseCumulativeNormal@QuantLib@@0NB)
1>varswap.obj : error LNK2001: symbole externe non résolu "private: static double const QuantLib::InverseCumulativeNormal::x_high_" (?x_high_@InverseCumulativeNormal@QuantLib@@0NB)
1>varswap.obj : error LNK2001: symbole externe non résolu "class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl QuantLib::operator<<(class std::basic_ostream<char,struct std::char_traits<char> > &,class QuantLib::Date const &)" (??6QuantLib@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@AAV12@ABVDate@0@@Z)
1>varswap.obj : error LNK2001: symbole externe non résolu "public: __thiscall QuantLib::BlackVarianceSurface::BlackVarianceSurface(class QuantLib::Date const &,class QuantLib::Calendar const &,class std::vector<class QuantLib::Date,class std::allocator<class QuantLib::Date> > const &,class std::vector<double,class std::allocator<double> > const &,class QuantLib::Matrix const &,class QuantLib::DayCounter const &,enum QuantLib::BlackVarianceSurface::Extrapolation,enum QuantLib::BlackVarianceSurface::Extrapolation)" (??0BlackVarianceSurface@QuantLib@@QAE@ABVDate@1@ABVCalendar@1@ABV?$vector@VDate@QuantLib@@V?$allocator@VDate@QuantLib@@@std@@@std@@ABV?$vector@NV?$allocator@N@std@@@5@ABVMatrix@1@ABVDayCounter@1@W4Extrapolation@01@6@Z)
1>varswap.obj : error LNK2001: symbole externe non résolu "public: __thiscall QuantLib::EuropeanExercise::EuropeanExercise(class QuantLib::Date const &)" (??0EuropeanExercise@QuantLib@@QAE@ABVDate@1@@Z)
1>varswap.obj : error LNK2001: symbole externe non résolu "private: static double const QuantLib::InverseCumulativeNormal::b5_" (?b5_@InverseCumulativeNormal@QuantLib@@0NB)
1>varswap.obj : error LNK2001: symbole externe non résolu "private: static double const QuantLib::InverseCumulativeNormal::b4_" (?b4_@InverseCumulativeNormal@QuantLib@@0NB)
1>varswap.obj : error LNK2001: symbole externe non résolu "private: static double const QuantLib::InverseCumulativeNormal::b2_" (?b2_@InverseCumulativeNormal@QuantLib@@0NB)
1>varswap.obj : error LNK2001: symbole externe non résolu "private: static double const QuantLib::InverseCumulativeNormal::a4_" (?a4_@InverseCumulativeNormal@QuantLib@@0NB)
1>varswap.obj : error LNK2001: symbole externe non résolu "private: static double const QuantLib::InverseCumulativeNormal::a1_" (?a1_@InverseCumulativeNormal@QuantLib@@0NB)
1>varswap.obj : error LNK2001: symbole externe non résolu "private: static double const QuantLib::InverseCumulativeNormal::b1_" (?b1_@InverseCumulativeNormal@QuantLib@@0NB)
1>varswap.obj : error LNK2001: symbole externe non résolu "private: static double const QuantLib::InverseCumulativeNormal::x_low_" (?x_low_@InverseCumulativeNormal@QuantLib@@0NB)
1>varswap.obj : error LNK2001: symbole externe non résolu "public: virtual bool __thiscall QuantLib::Integrator::integrationSuccess(void)const " (?integrationSuccess@Integrator@QuantLib@@UBE_NXZ)
1>varswap.obj : error LNK2001: symbole externe non résolu "public: double __thiscall QuantLib::Integrator::operator()(class boost::function<double __cdecl(double)> const &,double,double)const " (??RIntegrator@QuantLib@@QBENABV?$function@$$A6ANN@Z@boost@@NN@Z)
1>varswap.obj : error LNK2001: symbole externe non résolu "public: virtual void __thiscall QuantLib::PlainVanillaPayoff::accept(class QuantLib::AcyclicVisitor &)" (?accept@PlainVanillaPayoff@QuantLib@@UAEXAAVAcyclicVisitor@2@@Z)
1>varswap.obj : error LNK2001: symbole externe non résolu "public: virtual double __thiscall QuantLib::PlainVanillaPayoff::operator()(double)const " (??RPlainVanillaPayoff@QuantLib@@UBENN@Z)
1>varswap.obj : error LNK2001: symbole externe non résolu "public: static class QuantLib::Date __cdecl QuantLib::Date::todaysDate(void)" (?todaysDate@Date@QuantLib@@SA?AV12@XZ)
1>varswap.obj : error LNK2001: symbole externe non résolu "public: __thiscall QuantLib::Date::Date(long)" (??0Date@QuantLib@@QAE@J@Z)
1>varswap.obj : error LNK2001: symbole externe non résolu "public: class QuantLib::Handle<class QuantLib::YieldTermStructure> const & __thiscall QuantLib::GeneralizedBlackScholesProcess::riskFreeRate(void)const " (?riskFreeRate@GeneralizedBlackScholesProcess@QuantLib@@QBEABV?$Handle@VYieldTermStructure@QuantLib@@@2@XZ)
1>varswap.obj : error LNK2001: symbole externe non résolu "public: __thiscall QuantLib::SegmentIntegral::SegmentIntegral(unsigned int)" (??0SegmentIntegral@QuantLib@@QAE@I@Z)
1>varswap.obj : error LNK2001: symbole externe non résolu "private: static double const QuantLib::InverseCumulativeNormal::b3_" (?b3_@InverseCumulativeNormal@QuantLib@@0NB)
1>varswap.obj : error LNK2001: symbole externe non résolu "private: __thiscall QuantLib::Settings::Settings(void)" (??0Settings@QuantLib@@AAE@XZ)
1>varswap.obj : error LNK2001: symbole externe non résolu "public: __thiscall QuantLib::BlackVarianceCurve::BlackVarianceCurve(class QuantLib::Date const &,class std::vector<class QuantLib::Date,class std::allocator<class QuantLib::Date> > const &,class std::vector<double,class std::allocator<double> > const &,class QuantLib::DayCounter const &,bool)" (??0BlackVarianceCurve@QuantLib@@QAE@ABVDate@1@ABV?$vector@VDate@QuantLib@@V?$allocator@VDate@QuantLib@@@std@@@std@@ABV?$vector@NV?$allocator@N@std@@@4@ABVDayCounter@1@_N@Z)
1>varswap.obj : error LNK2001: symbole externe non résolu "public: virtual class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __thiscall QuantLib::TypePayoff::description(void)const " (?description@TypePayoff@QuantLib@@UBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ)
1>varswap.obj : error LNK2001: symbole externe non résolu "public: __thiscall QuantLib::BrownianBridge::BrownianBridge(class QuantLib::TimeGrid const &)" (??0BrownianBridge@QuantLib@@QAE@ABVTimeGrid@1@@Z)
1>varswap.obj : error LNK2001: symbole externe non résolu "private: static double const QuantLib::InverseCumulativeNormal::a6_" (?a6_@InverseCumulativeNormal@QuantLib@@0NB)
1>varswap.obj : error LNK2001: symbole externe non résolu "private: void __thiscall QuantLib::MersenneTwisterUniformRng::twist(void)const " (?twist@MersenneTwisterUniformRng@QuantLib@@ABEXXZ)
1>varswap.obj : error LNK2001: symbole externe non résolu "public: __thiscall QuantLib::MersenneTwisterUniformRng::MersenneTwisterUniformRng(unsigned long)" (??0MersenneTwisterUniformRng@QuantLib@@QAE@K@Z)
1>varswap.obj : error LNK2001: symbole externe non résolu "class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl QuantLib::detail::operator<<(class std::basic_ostream<char,struct std::char_traits<char> > &,struct QuantLib::detail::percent_holder const &)" (??6detail@QuantLib@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@AAV23@ABUpercent_holder@01@@Z)
1>varswap.obj : error LNK2001: symbole externe non résolu "private: static double const QuantLib::InverseCumulativeNormal::a5_" (?a5_@InverseCumulativeNormal@QuantLib@@0NB)
1>varswap.obj : error LNK2001: symbole externe non résolu "public: double __thiscall QuantLib::GeneralStatistics::variance(void)const " (?variance@GeneralStatistics@QuantLib@@QBENXZ)
1>varswap.obj : error LNK2001: symbole externe non résolu "public: double __thiscall QuantLib::GeneralStatistics::mean(void)const " (?mean@GeneralStatistics@QuantLib@@QBENXZ)
1>varswap.obj : error LNK2001: symbole externe non résolu "public: __thiscall QuantLib::TimeGrid::TimeGrid(double,unsigned int)" (??0TimeGrid@QuantLib@@QAE@NI@Z)
1>varswap.obj : error LNK2001: symbole externe non résolu "public: class QuantLib::InterestRate __thiscall QuantLib::YieldTermStructure::zeroRate(double,enum QuantLib::Compounding,enum QuantLib::Frequency,bool)const " (?zeroRate@YieldTermStructure@QuantLib@@QBE?AVInterestRate@2@NW4Compounding@2@W4Frequency@2@_N@Z)
1>varswap.obj : error LNK2001: symbole externe non résolu "public: double __thiscall QuantLib::YieldTermStructure::discount(double,bool)const " (?discount@YieldTermStructure@QuantLib@@QBENN_N@Z)
1>varswap.obj : error LNK2001: symbole externe non résolu "public: virtual void __thiscall QuantLib::VarianceSwap::arguments::validate(void)const " (?validate@arguments@VarianceSwap@QuantLib@@UBEXXZ)
1>varswap.obj : error LNK2001: symbole externe non résolu "public: double __thiscall QuantLib::VarianceSwap::variance(void)const " (?variance@VarianceSwap@QuantLib@@QBENXZ)
1>varswap.obj : error LNK2001: symbole externe non résolu "public: __thiscall QuantLib::VarianceSwap::VarianceSwap(enum QuantLib::Position::Type,double,double,class QuantLib::Date const &,class QuantLib::Date const &)" (??0VarianceSwap@QuantLib@@QAE@W4Type@Position@1@NNABVDate@1@1@Z)
1>varswap.obj : error LNK2001: symbole externe non résolu "public: virtual double __thiscall QuantLib::EulerDiscretization::variance(class QuantLib::StochasticProcess1D const &,double,double,double)const " (?variance@EulerDiscretization@QuantLib@@UBENABVStochasticProcess1D@2@NNN@Z)
1>varswap.obj : error LNK2001: symbole externe non résolu "public: virtual class QuantLib::Disposable<class QuantLib::Matrix> __thiscall QuantLib::EulerDiscretization::covariance(class QuantLib::StochasticProcess const &,double,class QuantLib::Array const &,double)const " (?covariance@EulerDiscretization@QuantLib@@UBE?AV?$Disposable@VMatrix@QuantLib@@@2@ABVStochasticProcess@2@NABVArray@2@N@Z)
1>varswap.obj : error LNK2001: symbole externe non résolu "public: virtual class QuantLib::Disposable<class QuantLib::Matrix> __thiscall QuantLib::EulerDiscretization::diffusion(class QuantLib::StochasticProcess const &,double,class QuantLib::Array const &,double)const " (?diffusion@EulerDiscretization@QuantLib@@UBE?AV?$Disposable@VMatrix@QuantLib@@@2@ABVStochasticProcess@2@NABVArray@2@N@Z)
1>varswap.obj : error LNK2001: symbole externe non résolu "public: virtual double __thiscall QuantLib::EulerDiscretization::diffusion(class QuantLib::StochasticProcess1D const &,double,double,double)const " (?diffusion@EulerDiscretization@QuantLib@@UBENABVStochasticProcess1D@2@NNN@Z)
1>varswap.obj : error LNK2001: symbole externe non résolu "public: virtual class QuantLib::Disposable<class QuantLib::Array> __thiscall QuantLib::EulerDiscretization::drift(class QuantLib::StochasticProcess const &,double,class QuantLib::Array const &,double)const " (?drift@EulerDiscretization@QuantLib@@UBE?AV?$Disposable@VArray@QuantLib@@@2@ABVStochasticProcess@2@NABVArray@2@N@Z)
1>varswap.obj : error LNK2001: symbole externe non résolu "public: virtual double __thiscall QuantLib::EulerDiscretization::drift(class QuantLib::StochasticProcess1D const &,double,double,double)const " (?drift@EulerDiscretization@QuantLib@@UBENABVStochasticProcess1D@2@NNN@Z)
1>varswap.obj : error LNK2001: symbole externe non résolu "public: virtual class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __thiscall QuantLib::StrikedTypePayoff::description(void)const " (?description@StrikedTypePayoff@QuantLib@@UBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ)
1>libboost_unit_test_framework-vc140-mt-1_61.lib(unit_test_main.obj) : error LNK2001: symbole externe non résolu "class boost::unit_test::test_suite * __cdecl init_unit_test_suite(int,char * * const)" (?init_unit_test_suite@@YAPAVtest_suite@unit_test@boost@@HQAPAD@Z)
1>C:\QuantLib\QuantLibVisual2015\project\exemple\Release\VarSwap.exe : fatal error LNK1120: 64 externes non résolus
========== Génération : 0 a réussi, 1 a échoué, 0 mis à jour, 0 a été ignoré ==========
------------------------------------------------------------------------------