Установка RQuantLib в Linux

Мы пытались установить RQuantLib на Linux-машину Redhat. После месяца (позорно долгого!) проб и ошибок мы успешно скомпилировали последнюю версию boost, а также quantlib. Я вообще не эксперт по Linux, поэтому у меня возникают небольшие проблемы с отладкой флагов компиляции при запуске install.packages("RQuantLib"). Rcpp также установлен и отлично работает.

В приведенном ниже сообщении об ошибке подробно описана проблема. Я запутался, потому что файл, который, как мне кажется, должен быть нужен (libQuantLib.so.0), существует в /usr/local/lib. Извините, что это, скорее всего, глупый вопрос, но я думаю, что мы очень близки к тому, чтобы получить доступ к quantlib в R на Linux.

Сообщение об ошибке ниже:

g++ -I/apps/R/R-3.0.0/include -DNDEBUG  -I/usr/local/include -I"/apps/R/R-3.0.0/library/Rcpp/include"  -g -O2  -I/usr/local/include -I/usr/loca
l/include/boost  -I. -fpic  -g -O2  -c zero.cpp -o zero.o

g++ -shared -L/usr/local/lib64 -o RQuantLib.so asian.o barrier_binary.o bermudan.o bonds.o calendars.o curves.o daycounter.o discount.o hullwhi
te.o implieds.o utils.o vanilla.o zero.o -L/apps/R/R-3.0.0/library/Rcpp/lib -lRcpp -Wl,-rpath,/apps/R/R-3.0.0/library/Rcpp/lib -L/usr/local/lib
-L/usr/local/lib -lQuantLib

installing to /apps/R/R-3.0.0/library/RQuantLib/libs
** R
** demo
** inst
** preparing package for lazy loading
** help
*** installing help indices
** building package indices
** testing if installed package can be loaded

Error in dyn.load(file, DLLpath = DLLpath, ...) : 
  unable to load shared object '/apps/R/R-3.0.0/library/RQuantLib/libs/RQuantLib.so':
  libQuantLib.so.0: cannot open shared object file: No such file or directory
Error: loading failed
Execution halted
ERROR: loading failed

person rlh2    schedule 05.09.2013    source источник
comment
Спасибо за редактирование сообщения, чтобы сделать сообщение об ошибке более понятным, я просто пытался понять, как это сделать!   -  person rlh2    schedule 05.09.2013


Ответы (1)


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

/usr/local/lib

на /etc/ld.so.conf (если его еще нет), а затем запустите

sudo ldconfig

В вашей системе должны быть справочные страницы как для ld.so, так и для ldconfig, если вы хотите понять, что делаете, что всегда является хорошим предложением. Никогда не выполняйте команды от незнакомцев в интернете, особенно в режиме sudo :)

После того, как вы сделаете все вышеперечисленное, вы сможете загрузить libQuantLib.

person Luigi Ballabio    schedule 05.09.2013
comment
В итоге мы установили символическую ссылку, но это решение может быть более элегантным, спасибо за помощь! - person rlh2; 07.09.2013