Не удается настроить QuantLib для swig python

Я успешно установил QuabtLib для своего окна Windows и хотел перенести его на Linux Ubuntu. Установка Boost прошла успешно, и я смог запустить ./configure из каталога 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.56 QuantLib 1.4 QuantLibSwig 1.4 Python2.7.6 Ubuntu 14 Спасибо,


person Don Shanil    schedule 21.09.2014    source источник
comment
Предупреждение является просто предупреждением, и оно ожидаемо (SWIG упаковывает устаревший класс). Система зависает или просто начинает подкачку? Обертки огромны, и их компиляция может занять всю вашу оперативную память. Если это так, попробуйте передать CXXFLAGS=-O0 в Makefile, чтобы отключить оптимизацию и уменьшить требования к памяти.   -  person Luigi Ballabio    schedule 22.09.2014
comment
Спасибо, Луиджи, увеличение оперативной памяти на виртуальной машине сработало, так что это была память - помощь очень ценится. Хотели бы вы добавить вышеизложенное в качестве ответа, чтобы другие могли ссылаться на него в будущем?   -  person Don Shanil    schedule 23.09.2014
comment
Рад, что это помогло. Я разместил ответ.   -  person Luigi Ballabio    schedule 24.09.2014


Ответы (1)


Вот мой комментарий выше, опубликованный как ответ для дальнейшего использования.

Ожидается предупреждение. Класс Surface был помечен как устаревший в QuantLib 1.4, мы все равно его упаковываем, и компилятор предупреждает нас об этом.

Зависание, вероятно, вызвано (определенно было вызвано, в случае оригинального плаката) исчерпанием доступной памяти. Обертки огромные, весят около 10 Мбайт, и для их компиляции требуется немало ресурсов. Если вы используете виртуальную машину, попробуйте добавить больше памяти. Если вы используете физическую машину и не можете, попробуйте отключить оптимизацию, чтобы сделать процесс компиляции менее требовательным. Вы можете сделать это, передав CXXFLAGS=-O0 либо ./configure, либо make.

person Luigi Ballabio    schedule 23.09.2014