/usr/lib64/libstdc++.so.6:加载R包时找不到版本`CXXABI_1.3.8'

时间:2017-07-04 09:06:10

标签: c++ r linux gcc rcpp

我知道这个问题已被多次询问,但我的情况非常特殊:我使用的是Linux集群,我没有root,但只能使用“module load gcc”“module load mkl”“module这样的命令加载R3.3 / mkl“等等以加载库。

最近我尝试在我的帐户上安装mxnet,之后一切似乎都有效,但后来我使用“模块加载R3.3 / mkl”而不是“模块加载”从R3.2切换到R3.2 R3.2 / mkl“,但现在当我尝试加载像stringi这样的R包时,它说

  

库(stringi),   dyn.load中的错误(文件,DLLpath = DLLpath,...):     无法加载共享对象'/home/hpc/pr74ze/ru37wof2/R/x86_64-pc-linux-gnu-library/3.3/stringi/libs/x   86_64 / stringi.so':     /usr/lib64/libstdc++.so.6:未找到版本“CXXABI_1.3.8”(/ home / hpc / pr74ze / ru37wof2 / R / x86要求)   _64-PC-Linux的GNU库/ 3.3 / stringi /库/ x86_64的/ stringi.so)   错误:'stringi'的包或命名空间加载失败

我记得我曾尝试在

之前加载gsl
module list
Currently Loaded Modulefiles:
 1) admin/1.0     3) intel/16.0   5) mpi.intel/5.1   7) R/3.3mkl   9) git/latest  11) gsl/1.16  
 2) tempdir/1.0   4) mkl/11.3     6) lrz/default     8) nano/2.2  10) gcc/4.9

如果我运行以下

echo $LD_LIBRARY_PATH
    /usr/lib64:/lrz/mnt/sys.x86_64/compilers/java/jdk1.7.0_51/jre/lib/amd64/server:/usr/lib64:/lrz/mnt/sys.x86
    _64/compilers/java/jdk1.7.0_51/jre/lib/amd64/server:/lrz/sys/libraries/gsl/1.16/lib:/lrz/sys/compilers/gcc
    /4.9.3/lib64:/lrz/sys/compilers/gcc/4.9.3/lib:/lrz/sys/applications/R/3.3.1_MKL/lib64/R/lib/x86_64:/lrz/sy
    s/intel/impi/5.1.3.181/lib64:/lrz/sys/intel/studio2016_u4/compilers_and_libraries_2016.4.258/linux/mkl/lib
    /intel64:/lrz/sys/intel/studio2016_u4/debugger_2016/libipt/intel64/lib:/lrz/sys/intel/studio2016_u4/compil
    ers_and_libraries_2016.4.258/linux/compiler/lib/intel64

如果我尝试安装RcppZiggurat

* installing *source* package ‘RcppZiggurat’ ...
** package ‘RcppZiggurat’ successfully unpacked and MD5 sums checked
** libs
*** arch - x86_64
icpc -I/lrz/sys/applications/R/3.3.1_MKL/lib64/R/include -I/lrz/sys/applications/R/3.3.1_MKL/lib64/R/include/x86_64 -DNDEBUG -I. -I../inst/include -I/usr/local/include -I"/home/hpc/pr74ze/ru37wof2/R/x86_64-pc-lin
ux-gnu-library/3.3/Rcpp/include" -I"/home/hpc/pr74ze/ru37wof2/R/x86_64-pc-linux-gnu-library/3.3/RcppGSL/include"   -fpic  -O3  -c RcppExports.cpp -o RcppExports.o
In file included from /home/hpc/pr74ze/ru37wof2/R/x86_64-pc-linux-gnu-library/3.3/RcppGSL/include/RcppGSL.h(25),
                 from RcppExports.cpp(4):
/home/hpc/pr74ze/ru37wof2/R/x86_64-pc-linux-gnu-library/3.3/RcppGSL/include/RcppGSLForward.h(26): catastrophic error: cannot open source file "gsl/gsl_vector.h"
  #include <gsl/gsl_vector.h>
                              ^

compilation aborted for RcppExports.cpp (code 4)

但我该怎样继续找出问题所在?

1 个答案:

答案 0 :(得分:0)

请注意隐藏在/home/hpc/pr74ze/ru37wof2/R/x86_64-pc-linux-gnu-library/3.3/stringi/libs/x 86_64/stringi.so内部的3.3 - 您可能在3.2下构建它,因此它位于/home/hpc/pr74ze/ru37wof2/R/x86_64-pc-linux-gnu-library/3.2之下。

您可以通过直接或通过环境变量设置自己的.libPaths()来解决此问题 - 您可能需要~/R/library之类的内容。有关详细信息,请参阅help(Startup)