Я успешно скомпилировал QuantLib 1.12 на Ubuntu с флагами --enable-sessions и --enable-thread-safe-observer-pattern. Я также скомпилировал привязки java Swig. Когда я пытаюсь запустить пример Bonds в java, я получаю ошибку неопределенного символа в sessionId().
java -cp ./QuantLib.jar:. -Djava.library.path=/usr/local/lib examples.Bond
java:symbol lookup error:/usr/local/lib/libQuantLibJNI.so:undefined
symbol:_ZN8QuantLib9sessionIdEV
Любая идея, как решить эту ошибку? Я видел несколько ссылок на внешнюю реализацию функции sessionId() и ссылку на QuantLib. Я не уверен, как именно это сделать. Могу ли я добавить файл «mysessions.cpp» в папку ql/ и собрать QuantLib как обычно? Файл mysessions.cpp будет иметь следующее содержимое:
#include <thread>
int QuantLib::sessionId(void)
{
return std::this_thread::get_id().hash();
}
Спасибо за вашу помощь.