Problem w obliczu został tu rozwiązany: Loading shared library in open-mpi/ mpi-runMPI - Błąd ładowania biblioteki współdzielone
nie wiem jak, ustawienie LD_LIBRARY_PATH
lub określając -x LD_LIBRARY_PATH
rozwiązuje problem, gdy sama moja instalacja określa niezbędne argumenty -l. Moja instalacja jest w ~/mpi/
Mam również moje konfiguracje kompilacji linków.
$ mpic++ -showme:version
mpic++: Open MPI 1.6.3 (Language: C++)
$ mpic++ -showme
g++ -I/home/vigneshwaren/mpi/include -pthread -L/home/vigneshwaren/mpi/lib
-lmpi_cxx -lmpi -ldl -lm -Wl,--export-dynamic -lrt -lnsl -lutil -lm -ldl
$ mpic++ -showme:libdirs
/home/vigneshwaren/mpi/lib
$ mpic++ -showme:libs
mpi_cxx mpi dl m rt nsl util m dl % Notice mpi_cxx here %
Kiedy skompilowany z mpic++ <file>
i pobiegł z mpirun a.out
dostałam (wspólna biblioteka) linker error
error while loading shared libraries: libmpi_cxx.so.1:
cannot open shared object file: No such file or directory
Błąd został naprawiony poprzez ustawienie LD_LIBRARY_PATH
. Pytanie brzmi: jak i dlaczego? Czego mi brakuje? Dlaczego wymagana jest LD_LIBRARY_PATH
, gdy moja instalacja wygląda dobrze.
Upewnij się, że 'LD_LIBRARY_PATH' nie jest overwitten w swoim' .bashrc' jak mój był z CUDA. Chcesz coś takiego jak 'export LD_LIBRARY_PATH =/lib64/openmpi/lib: $ LD_LIBRARY_PATH' –