2013-08-29 102 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'後,軟件包已成功安裝 - 但我沒有真正使用它。 –