0

我已经为我的 windows 机器成功安装了 QuabtLib,并希望将其移植到 Linux Ubuntu。Boost 安装成功,我能够从 swig 目录运行 ./configure。但是,当我运行 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.56 QuantLib 1.4 QuantLibSwig 1.4 Python2.7.6 Ubuntu 14 谢谢,

4

1 回答 1

1

这是我上面的评论,作为将来参考的答案发布。

该警告是预期的。该类Surface在 QuantLib 1.4 中被标记为已弃用,无论如何我们都在包装它,编译器正在警告我们。

冻结可能是由可用内存耗尽引起的(在原始海报的情况下肯定是引起的)。包装器很大,重约 10 MB,编译它们需要相当多的资源。如果您使用的是虚拟机,请尝试添加更多内存。如果您使用的是物理机并且不能,请尝试禁用优化以降低编译过程的要求。您可以通过传递CXXFLAGS=-O0./configure或来做到这一点make

于 2014-09-23T21:11:18.093 回答