1

我们一直在尝试在 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
4

1 回答 1

5

可能只是动态加载器还没有意识到您已经添加了 QuantLib。尝试添加行

/usr/local/lib

/etc/ld.so.conf(如果它不存在)然后运行

sudo ldconfig

在您的系统上,两者都应该有手册页ld.soldconfig如果您想了解自己在做什么,这总是一个好主意。切勿在互联网上执行陌生人给出的命令,尤其是在sudo模式下 :)

完成上述操作后,您应该可以加载libQuantLib.

于 2013-09-05T22:20:48.880 回答