2013-08-29 103 views
0

嘿,我在这里看到了以下两个问题:上Centos6安装RMPI '找不到-lmpi'

  1. Install Rmpi on Centos fails with "can't find -lmpi"
  2. Installing Rmpi on LAM/MPI cluster

但他们没有提供任何具体回答这个问题。

下面是一些相关信息:

R> system('echo "$LD_LIBRARY_PATH"') 
/usr/lib64/R/lib:/usr/local/lib64:/usr/lib/jvm/jre/lib/amd64/server:/usr/lib/jvm/jre/lib/amd64:/usr/lib/jvm/java/lib/amd64:/usr/java/packages/lib/amd64:/lib:/usr/lib:/usr/lib64/openmpi/lib 

R> install.packages("Rmpi", configure.args="--with-Rmpi-include=/usr/include/openmpi-x86_64 --with-Rmpi-libpath=/usr/lib64/openmpi --with-Rmpi-type=OPENMPI") 

这是错误信息的最后一部分:

gcc -m64 -std=gnu99 -shared -L/usr/local/lib64 -o Rmpi.so RegQuery.o Rmpi.o conversion.o internal.o -L/usr/lib64/openmpi -lmpi -L/usr/lib64/R/lib -lR 
/usr/bin/ld: cannot find -lmpi 
collect2: ld returned 1 exit status 
make: *** [Rmpi.so] Error 1 

任何帮助将是巨大的。谢谢。

+0

你肯定' libmpi.so'在'/ usr/lib64/openmpi'中? –

+0

它应该是'/ usr/lib64/openmpi /'lib吗? – asb

回答

1

安装后openmpi-devel, 我看到libmpi.so/usr/lib64/openmpi/lib/

$ sudo yum install openmpi-devel 
$ sudo updatedb 
$ locate libmpi.so 
/usr/lib64/openmpi/lib/libmpi.so 
/usr/lib64/openmpi/lib/libmpi.so.1 
/usr/lib64/openmpi/lib/libmpi.so.1.0.2 

下面应该工作:

install.packages(
    "Rmpi", 
    configure.args = paste( 
    "--with-Rmpi-include=/usr/include/openmpi-x86_64", 
    "--with-Rmpi-libpath=/usr/lib64/openmpi/lib", 
    "--with-Rmpi-type=OPENMPI" 
) 
) 

如果有必要告诉系统查找共享库,在此目录中,还有:

# echo "/usr/lib64/openmpi/lib" > /etc/ld.so.conf.d/openmpi.conf 
# ldconfig 
+0

感谢Vincent的帮助。这是为了办公室设置。我们最终决定迁移到Ubuntu的原因有很多。无论如何,如果你能证实这一点,我会接受这个答案。谢谢。 – asb

+0

我在CentOS虚拟机上检查过:在更改为'ld.so.conf'后,软件包已成功安装 - 但我没有真正使用它。 –