コード
#include <ql/quantlib.hpp>
#include <boost/timer.hpp>
int main ()
{
return 0;
}
ライブラリのインストール
sudo apt-get install libquantlib-1.1
QuantLib 構成
$quantlib-config --libs
-L/usr/lib -lQuantLib
$ quantlib-config --cflags
-I/usr/include
$
コンパイルとリンクの手順:
$ g++ test1.cpp -L/usr/lib -lQuantLib -I/usr/include -fPIC -o test1 /tmp/cc0GDoC4.o: 関数 `QuantLib::CPICoupon::indexFixing() const' 内: test1.cpp:(.text._ZNK8QuantLib9CPICoupon11indexFixingEv[QuantLib::CPICoupon::indexFixing() const]+0x36): `QuantLib::CPICoupon::indexFixing(QuantLib::Date const&) const' への未定義の参照 /tmp/cc0GDoC4.o:(.data.rel.ro._ZTVN8QuantLib22SwaptionVolatilityCubeE[QuantLib::SwaptionVolatilityCube の vtable]+0x100): 「QuantLib::SwaptionVolatilityDiscrete::update() への非仮想サンク」への未定義の参照 /tmp/cc0GDoC4.o:(.data.rel.ro._ZTCN8QuantLib22SwaptionVolatilityCubeE0_NS_26SwaptionVolatilityDiscreteE[QuantLib::SwaptionVolatilityCube の vtable]+0xa8): 「QuantLib::SwaptionVolatilityDiscrete::update() への非仮想サンク」への未定義の参照 /tmp/cc0GDoC4.o:(.data.rel.ro._ZTVN8QuantLib22CapFloorTermVolSurfaceE[QuantLib::CapFloorTermVolSurface の vtable]+0xc8): 「QuantLib::CapFloorTermVolSurface::update() への非仮想サンク」への未定義の参照 /tmp/cc0GDoC4.o:(.data.rel.ro._ZTVN8QuantLib20CapFloorTermVolCurveE[QuantLib::CapFloorTermVolCurve の vtable]+0xc8): 「QuantLib::CapFloorTermVolCurve::update() への非仮想サンク」への未定義の参照 /tmp/cc0GDoC4.o:(.data.rel.ro._ZTVN8QuantLib20SpreadedSmileSectionE[QuantLib::SpreadedSmileSection の vtable]+0x50): `QuantLib::SmileSection::optionPrice(double, QuantLib::Option::Type, double) const' /tmp/cc0GDoC4.o:(.data.rel.ro._ZTVN8QuantLib20SpreadedSmileSectionE[QuantLib::SpreadedSmileSection の vtable]+0x58): `QuantLib::SmileSection::digitalOptionPrice(double, QuantLib::Option::Type, double, double) const' /tmp/cc0GDoC4.o:(.data.rel.ro._ZTVN8QuantLib20SpreadedSmileSectionE[QuantLib::SpreadedSmileSection の vtable]+0x60): `QuantLib::SmileSection::vega(double, double) const' への未定義の参照 /tmp/cc0GDoC4.o:(.data.rel.ro._ZTVN8QuantLib20SpreadedSmileSectionE[QuantLib::SpreadedSmileSection の vtable]+0x68): `QuantLib::SmileSection::density(double, double, double) const' への未定義の参照 /tmp/cc0GDoC4.o:(.data.rel.ro._ZTCN8QuantLib20SpreadedSmileSectionE0_NS_12SmileSectionE[QuantLib::SpreadedSmileSection の vtable]+0x50): `QuantLib::SmileSection::optionPrice(double, QuantLib::Option::Type, double) const' /tmp/cc0GDoC4.o:(.data.rel.ro._ZTCN8QuantLib20SpreadedSmileSectionE0_NS_12SmileSectionE[QuantLib::SpreadedSmileSection の vtable]+0x58): `QuantLib::SmileSection::digitalOptionPrice(double, QuantLib::Option::Type, double, double) const' /tmp/cc0GDoC4.o:(.data.rel.ro._ZTCN8QuantLib20SpreadedSmileSectionE0_NS_12SmileSectionE[QuantLib::SpreadedSmileSection の vtable]+0x60): `QuantLib::SmileSection::vega(double, double) const' への未定義の参照 /tmp/cc0GDoC4.o:(.data.rel.ro._ZTCN8QuantLib20SpreadedSmileSectionE0_NS_12SmileSectionE[QuantLib::SpreadedSmileSection の vtable]+0x68): `QuantLib::SmileSection::density(double, double, double) const' への未定義の参照 /tmp/cc0GDoC4.o:(.data.rel.ro._ZTVN8QuantLib10FdmBatesOpE[QuantLib::FdmBatesOp の vtable]+0x60): `QuantLib::FdmBatesOp::toMatrixDecomp() const' への未定義の参照 /tmp/cc0GDoC4.o:(.data.rel.ro._ZTVN8QuantLib16FlatSmileSectionE[QuantLib::FlatSmileSection の vtable]+0x50): `QuantLib::SmileSection::optionPrice(double, QuantLib::Option::Type, double) const' /tmp/cc0GDoC4.o:(.data.rel.ro._ZTVN8QuantLib16FlatSmileSectionE[QuantLib::FlatSmileSection の vtable]+0x58): `QuantLib::SmileSection::digitalOptionPrice(double, QuantLib::Option::Type, double, double) const' /tmp/cc0GDoC4.o:(.data.rel.ro._ZTVN8QuantLib16FlatSmileSectionE[QuantLib::FlatSmileSection の vtable]+0x60): `QuantLib::SmileSection::vega(double, double) const' への未定義の参照 /tmp/cc0GDoC4.o:(.data.rel.ro._ZTVN8QuantLib16FlatSmileSectionE[QuantLib::FlatSmileSection の vtable]+0x68): `QuantLib::SmileSection::density(double, double, double) const' への未定義の参照 /tmp/cc0GDoC4.o:(.data.rel.ro._ZTCN8QuantLib16FlatSmileSectionE0_NS_12SmileSectionE[QuantLib::FlatSmileSection の vtable]+0x50): `QuantLib::SmileSection::optionPrice(double, QuantLib::Option::Type, double) const' /tmp/cc0GDoC4.o:(.data.rel.ro._ZTCN8QuantLib16FlatSmileSectionE0_NS_12SmileSectionE[QuantLib::FlatSmileSection の vtable]+0x58): `QuantLib::SmileSection::digitalOptionPrice(double, QuantLib::Option::Type, double, double) const' /tmp/cc0GDoC4.o:(.data.rel.ro._ZTCN8QuantLib16FlatSmileSectionE0_NS_12SmileSectionE[QuantLib::FlatSmileSection の vtable]+0x60): `QuantLib::SmileSection::vega(double, double) const' への未定義の参照 /tmp/cc0GDoC4.o:(.data.rel.ro._ZTCN8QuantLib16FlatSmileSectionE0_NS_12SmileSectionE[QuantLib::FlatSmileSection の vtable]+0x68): `QuantLib::SmileSection::density(double, double, double) const' への未定義の参照 /tmp/cc0GDoC4.o:(.data.rel.ro._ZTVN8QuantLib27CPICapFloorTermPriceSurfaceE[QuantLib::CPICapFloorTermPriceSurface の vtable]+0xb0): `QuantLib::CPICapFloorTermPriceSurface::price(QuantLib::Period const&, double) const' への未定義の参照 /tmp/cc0GDoC4.o:(.data.rel.ro._ZTVN8QuantLib27CPICapFloorTermPriceSurfaceE[QuantLib::CPICapFloorTermPriceSurface の vtable]+0xb8): `QuantLib::CPICapFloorTermPriceSurface::capPrice(QuantLib::Period const&, double) const' への未定義の参照 /tmp/cc0GDoC4.o:(.data.rel.ro._ZTVN8QuantLib27CPICapFloorTermPriceSurfaceE[QuantLib::CPICapFloorTermPriceSurface の vtable]+0xc0): `QuantLib::CPICapFloorTermPriceSurface::floorPrice(QuantLib::Period const&, double) const' への未定義の参照 /tmp/cc0GDoC4.o:(.data.rel.ro._ZTVN8QuantLib27CPICapFloorTermPriceSurfaceE[QuantLib::CPICapFloorTermPriceSurface の vtable]+0x128): `QuantLib::CPICapFloorTermPriceSurface::cpiOptionDateFromTenor(QuantLib::Period const&) const' への未定義の参照 /tmp/cc0GDoC4.o:(.data.rel.ro._ZTVN8QuantLib9CPICouponE[QuantLib::CPICoupon の vtable]+0x30): `QuantLib::CPICoupon::accept(QuantLib::AcyclicVisitor&)' への未定義の参照 /tmp/cc0GDoC4.o:(.data.rel.ro._ZTVN8QuantLib9CPICouponE[QuantLib::CPICoupon の vtable]+0x78): `QuantLib::CPICoupon::checkPricerImpl(boost::shared_ptr const&) const' への未定義の参照 collect2: ld が 1 つの終了ステータスを返しました
手伝っていただけませんか ?