2014-09-21 98 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