Rscript 是否更改 LD_LIBRARY_PATH?

Does Rscript change LD_LIBRARY_PATH?

我正在 运行ning 一个 R 版本(不是用 intel parallel studio 编译的),我正在尝试加载我自己编译的 intel 编译共享 Fortran 库.在我用于 运行 的脚本中,我包含了 LD_LIBRARY_PATH,然后使用 Rscript 来 运行 R 脚本(调用 dyn.load("My_Fortran.so") , 使用 ifort 和 mkl 编译)。

然而,当我 运行 脚本时,它失败并显示 Intel MKL FATAL ERROR: Cannot load libmkl_avx.so or libmkl_def.soRscript 是否有可能撤消我对 LD_LIBRARY_PATH 的设置?如果不是,是否可能因为这个版本的 R 不是用 intel parallel studio 编译的,所以它无法加载共享库?

我是这样 运行R 脚本并加载路径的:

#!/bin/bash
module load R/3.1.0
LD_LIBRARY_PATH=/path/to/intel_parallel_studio/xe_2015_u3/install/mkl/lib/intel64:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
Rscript myRscript.r

R 脚本失败:

Running R code
Attempting to load Fortran compiled shared library ... Done!
Calling Fortran subroutine from within R ... 
MKL FATAL ERROR: Cannot load libmkl_avx.so or libmkl_def.so

您可以查看 RRscript 的 shell 脚本源代码。

一般来说,此类 PATH 设置(用于可执行文件和共享库)通常只会添加到,而不会被覆盖。所以你可能有另一个问题。

你可以编辑 /etc/ld.so.conf 吗?

编辑 还可以考虑在 module load R/3.1.0.

之前 设置 LD_LIBRARY_PATH