昨天我想启动我的一个旧程序来生成一些矩阵。问题是,它没有起作用。我收到这个错误:
./matrixBinaryGenerator: error while loading shared libraries: libmpich.so.10: cannot open shared object file: No such file or directory
我尝试重新安装mpich
、mpich2
和libmpich-dev
,但即使全部重新安装成功,也没有解决我的问题。
所以,我知道这是一个相当初学者的问题,但是,你知道我如何安装这个库吗?我不喜欢手动安装它(从 RPM 等),而是从某个存储库安装。
我的程序使用PETSC,我的操作系统是Ubuntu 14.10。
这是我的 MPI 版本:
HYDRA build details:
Version: 3.1
Release Date: Thu Feb 20 11:41:13 CST 2014
CC: gcc -D_FORTIFY_SOURCE=2 -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wl,-Bsymbolic-functions -Wl,-z,relro
CXX: g++ -D_FORTIFY_SOURCE=2 -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wl,-Bsymbolic-functions -Wl,-z,relro
F77: gfortran -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wl,-Bsymbolic-functions -Wl,-z,relro
F90: gfortran -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wl,-Bsymbolic-functions -Wl,-z,relro
Configure options: '--disable-option-checking' '--prefix=/usr' '--build=x86_64-linux-gnu' '--includedir=${prefix}/include' '--mandir=${prefix}/share/man' '--infodir=${prefix}/share/info' '--sysconfdir=/etc' '--localstatedir=/var' '--libdir=${prefix}/lib/x86_64-linux-gnu' '--libexecdir=${prefix}/lib/x86_64-linux-gnu' '--disable-maintainer-mode' '--disable-dependency-tracking' '--enable-shared' '--enable-fc' '--disable-rpath' '--disable-wrapper-rpath' '--sysconfdir=/etc/mpich' '--libdir=/usr/lib/x86_64-linux-gnu' '--includedir=/usr/include/mpich' '--docdir=/usr/share/doc/mpich' '--with-hwloc-prefix=system' '--enable-checkpointing' '--with-hydra-ckpointlib=blcr' 'build_alias=x86_64-linux-gnu' 'MPICHLIB_CFLAGS=-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security' 'MPICHLIB_CXXFLAGS=-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security' 'MPICHLIB_FFLAGS=-g -O2 -fstack-protector --param=ssp-buffer-size=4' 'MPICHLIB_FCFLAGS=-g -O2 -fstack-protector --param=ssp-buffer-size=4' 'CFLAGS=-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -O2' 'LDFLAGS=-Wl,-Bsymbolic-functions -Wl,-z,relro ' 'CPPFLAGS=-D_FORTIFY_SOURCE=2 -I/build/buildd/mpich-3.1/src/mpl/include -I/build/buildd/mpich-3.1/src/mpl/include -I/build/buildd/mpich-3.1/src/openpa/src -I/build/buildd/mpich-3.1/src/openpa/src -I/build/buildd/mpich-3.1/src/mpi/romio/include' 'CXXFLAGS=-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security' 'F77=gfortran' 'FFLAGS=-g -O2 -fstack-protector --param=ssp-buffer-size=4 -g -O2 -fstack-protector --param=ssp-buffer-size=4 -O2' 'FC=gfortran' 'FCFLAGS=-g -O2 -fstack-protector --param=ssp-buffer-size=4 -g -O2 -fstack-protector --param=ssp-buffer-size=4' '--cache-file=/dev/null' '--srcdir=.' 'CC=gcc' 'LIBS=-lrt -lcr -lpthread '
Process Manager: pmi
Launchers available: ssh rsh fork slurm ll lsf sge manual persist
Topology libraries available: hwloc
Resource management kernels available: user slurm ll lsf sge pbs cobalt
Checkpointing libraries available: blcr
Demux engines available: poll select
答案1
最后我找到了解决这个问题的方法。我发现,我的系统上libmpich.so.10
没有libmpich.so.12
。所以我创建了一个符号链接并且它有效:-)
命令:
ln -s libmpich.so.10 libmpich.so.12