天天看點

OpenFOAM用wmake編譯applications/test裡的檔案時缺少libmpi.so.1的解決辦法OpenFOAM用wmake編譯applications/test裡的檔案時缺少libmpi.so.1的解決辦法

OpenFOAM用wmake編譯applications/test裡的檔案時缺少libmpi.so.1的解決辦法

說明:系統OpenSUSE Tumbleweed;OpenFOAM 3.0.x;openMPI 1.10.2。

問題描述

OpenFOAM用wmake編譯applications/test裡的檔案時報:

warning: libmpi.so.1, needed by /home/weiming/OpenFOAM/OpenFOAM-.x/platforms/linux64GccDPInt32Opt/lib/openmpi-system/libPstream.so, not found (try using -rpath or -rpath-link)
...
對‘ompi_mpi_op_sum’未定義的引用
對‘ompi_mpi_byte’未定義的引用
...
           

解決辦法

1. 檢視/usr/lib64(有些LINUX版本在/usr/lib)中的libmpi.so

結果如下:

lrwxrwxrwx  root root      月   : ./libmpi.so -> libmpi.so
lrwxrwxrwx  root root      月   : ./libmpi.so -> libmpi.so
-rwxr-xr-x  root root  月   : ./libmpi.so
lrwxrwxrwx  root root      月   : ./libmpi.so -> /usr/lib64/mpi/gcc/openmpi/lib64/libmpi.so
lrwxrwxrwx  root root      月   : ./mpi/gcc/openmpi/lib64/libmpi.so -> libmpi.so
lrwxrwxrwx  root root      月   : ./mpi/gcc/openmpi/lib64/libmpi.so -> libmpi.so
-rwxr-xr-x  root root  月   : ./mpi/gcc/openmpi/lib64/libmpi.so
           

2. 建立軟連結

/usr/lib64#ln -s /usr/lib64/mpi/gcc/openmpi/lib64/libmpi.so /usr/lib64/libmpi.so
           

注意libmpi.so.0.0.0并不是openmpi的lib,是以ln -s /usr/lib64/libmpi.so.0.0.0 /usr/lib64/libmpi.so.1這個會出錯。

3.如果想删除軟連結:

/usr/lib64#rm -rf /usr/lib64/libmpi.so
           

參考:http://www.datumedge.co.uk/2016/04/27/openfoam-on-ubuntu-16-04/