2014-09-21 85 views
0

我已成功为我的Windows系统安装QuabtLib,并希望将其移植到Linux Ubuntu。 Boost安装成功,我能够从swig目录运行./configure。但是,当我运行make文件时,系统在以下位置冻结:无法为swig python安装QuantLib

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)); 

如果有人知道修复程序,会很好。 环境信息:提升1.56 QuantLib 1.4 QuantLibSwig 1.4 Python2.7.6 Ubuntu的14个 感谢,

+0

该警告仅仅是一个警告,它预期(SWIG包装了一个弃用的类)。系统是否冻结,或只是开始交换?包装很大,编译它们可能会耗尽你所有的RAM。如果是这种情况,请尝试将CXXFLAGS = -O0传递给Makefile以禁用优化并降低内存要求。 – 2014-09-22 08:15:42

+0

感谢Luigi,增加了VM上的内存,所以它是内存 - 非常感谢。你想添加上面的答案,以便其他人可以在将来参考它吗? – 2014-09-23 14:08:26

+0

很高兴帮助。我已经发布了答案。 – 2014-09-23 21:11:53

回答

1

这里是我的上述评论,张贴以供将来参考答案。

预计会发出警告。 类在QuantLib 1.4中被标记为已弃用,我们正在封装它,编译器会向我们发出警告。

冻结可能是由可用内存耗尽引起的(绝对是由于原始海报造成的)。包装很大,重约10 MB,编译它们需要相当多的资源。如果您使用虚拟机,请尝试添加更多内存。如果您使用的是物理机器,但无法使用,请尝试禁用优化,以减少编译过程的要求。您可以通过将CXXFLAGS=-O0传递给./configuremake