我们一直在尝试在redhat linux机器上安装RQuantLib。经过一个月(令人尴尬的长时间!)的反复试验,我们成功地编译了最新版本的boost和quantlib。我根本不是Linux专家,因此在运行install.packages(“RQuantLib”)时调试编译标志时遇到一些麻烦。 Rcpp已经安装并且工作正常。
以下错误消息详细说明了该问题。我很困惑,因为我认为它应该需要的文件(libQuantLib.so.0)存在于/ usr / local / lib中。很抱歉,这很可能是一个愚蠢的问题,但我认为我们非常接近在Linux上访问R中的quantlib。
错误信息如下:
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 :(得分:6)
可能只是动态加载器还没有意识到你已经添加了QuantLib。 尝试添加行
/usr/local/lib
到/etc/ld.so.conf
(如果它还没有),然后运行
sudo ldconfig
在您的系统上,如果您想了解自己在做什么,那么ld.so
和ldconfig
应该有手册页,这始终是一个好主意。永远不要执行互联网上陌生人给出的命令,尤其是在sudo
模式下:)
执行上述操作后,您应该可以加载libQuantLib
。