2013-09-05 2 views
2

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

Приведенное ниже сообщение об ошибке подробно описывает проблему. Я запутался, потому что файл, который, я думаю, должен захотеть (libQuantLib.so.0), существует в/usr/local/lib. Извините, что это, скорее всего, глупый вопрос, но я думаю, что мы очень близки к доступу к квантлибу в 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 
+0

Спасибо за редактирование сообщения, чтобы сообщение об ошибке было более ясным, я просто пытался выяснить, как это сделать! – rlh2

ответ

5

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

/usr/local/lib 

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

sudo ldconfig 

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

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

+0

Мы закончили создание символической ссылки, но это решение может быть более элегантным - спасибо за помощь! – rlh2