|
From: Norbert I. <N....@di...> - 2010-04-09 11:18:05
|
I finally solved my problems.
I had 4 unresolved symbols.
3 were due to functions, which were declared and defined with different signatures, e.g.
Quantlib:: DefaultEvent:: DefaultSettlement::recoveryRate
was declared in "QuantLib-1.0/ql/experimental/credit/defaultevent.hpp" as
Real recoveryRate(Seniority sen) const;
while in "QuantLib-1.0/ql/experimental/credit/defaultevent.cpp"
Real recoveryRate(const Seniority sen) const { ... }
was defined.
The same problem i had with the constructors:
QuantLib::FdmHestonSolver::FdmHestonSolver
QuantLib::FdmHestonHullWhiteSolver:: FdmHestonHullWhiteSolver
They also had different declarations and definitions (parameters declared as non-const,
but const in definition).
The 4-th unresolved symbol was the template function,
ForwardOptionArguments<QuantLib::Option::arguments>::validate
which was not instantiated, because the template definition (defined in
/pricingengines/forward/forwardengine.hpp) was not visible at the
instantiation location.
I simply added the line
#include <ql/pricingengines/forward/forwardengine.hpp>
to
QuantLib-1.0/ql/instruments/forwardvanillaoption.cpp
and the problem was gone.
As i previously wrote, when compiling Quantlib with Sunstudio i got
a lot of undefined "M_PI", "sqrt" etc..
I solved these by simply adding lots of "#include <math.h>" to the sources,
perhaps this could be done more elegantly at a central location.
But overall i can say QuantLib builds and runs fine on Solaris10/Sparc/Sunstudio12.1
with only minor modifications.
|