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