ld: после успешного связывания разделяемая библиотека не найдена при исполнении - PullRequest
1 голос
/ 01 марта 2012

В настоящее время я работаю над простым синхронизатором данных в смеси Fortran и C / C ++ с использованием библиотек OpenMPI.Синхронизатор правильно компилирует и связывает, насколько я вижу:

f95 -o fortran_mpi_test *.o -L/usr/lib/gcc/x86_64-redhat-linux/4.1.1/ 
    -L/usr/lib64/openmpi/1.4-gcc/lib/ -lmpi -lmpi_cxx -lstdc++

Но когда я выполняю полученный исполняемый файл на той же обработанной, я получаю сообщение об ошибке, в котором говорится, что одна из общих библиотек не найдена.Это подтверждается лдд.Тем не менее отсутствующая библиотека libmpi_cxx.so.0 находится в одной из указанных папок.

Может кто-нибудь подсказать, что я мог сделать неправильно?

1 Ответ

0 голосов
/ 01 марта 2012

Проверьте переменные среды. Если ваши LIBRARY_PATH, LD_LIBRARY_PATH или подобные переменные не синхронизированы или имеют глупые значения, вы можете не искать в тех же каталогах статические библиотеки, что и динамические.

Также ознакомьтесь с man-страницей ld.so

...