无法为swig-python设置QuantLib

Cannot setup QuantLib for swig python

本文关键字:设置 QuantLib swig-python      更新时间:2023-10-16

我已经成功地为我的windows盒子安装了QuabtLib,并希望将其移植到Linux Ubuntu。Boost安装成功了,我可以运行了/从swig目录进行配置。然而,当我运行make文件时,系统在以下点冻结:

QuantLib/quantlib_wrap.cpp: In function ‘void* _p_TestSurfacePtrTo_p_boost__shared_ptrT_Surface_t(void*, int*)’:
QuantLib/quantlib_wrap.cpp:253496:41: warning: ‘Surface’ is deprecated (declared at /usr/include/ql/math/surface.hpp:47) [-Wdeprecated-declarations]
     return (void *)((boost::shared_ptr< Surface > *)  ((TestSurfacePtr *) x));

如果有人知道解决办法,那就太好了。环境信息:Boost 1.56QuantLib 1.4QuantLibSwig 1.4Python 2.7.6Ubuntu 14谢谢,

这是我在上面的评论,作为未来参考的答案。

预期会出现警告。在QuantLib 1.4中,Surface类被标记为不推荐使用,我们无论如何都会包装它,编译器会警告我们这一点。

冻结可能是由于可用内存的耗尽造成的(就原始海报而言,这肯定是造成的)。包装器是巨大的,重约10MB,编译它们需要相当多的资源。如果您使用的是虚拟机,请尝试添加更多内存。如果您使用的是物理机器,但不能,请尝试禁用优化,以降低编译过程的要求。可以通过将CXXFLAGS=-O0传递给./configuremake来完成此操作。