Libgfortran: версия `GFORTRAN_1.4 'не найдена
Я получаю следующую ошибку при попытке запуска mex файла в MATLAB:
??? Invalid MEX-file
'findimps3.mexa64':
/MATLAB/bin/glnxa64/../../sys/os/glnxa64/libgfortran.so.3: version `GFORTRAN_1.4' not found (required by /usr/lib/libblas.so.3gf)
Любые идеи, как решить эту проблему?
обновление:
Я узнал, что "строки MATLAB/.../libgfortran.so.3 | grep GFORTRAN" выводят GFORTRAN_1.0. Я попытался изменить libgfortran внутри MATLAB, но это не сработало. Не думаю, что лучше найти подходящие libblas, которые работают с GFORTRAN_1.0.
Ответы
Ответ 1
прочитайте эту ссылку, в нем объясняется, как настроить Matlab для некоторых Linux-систем.
выполните следующие действия:
Чтобы включить запуск внешних программ, библиотеки [...] fortran необходимо правильно обновить и связать. Посмотрите на вывод этой команды:
ll "$MATLABDIR/bin/glnxa64/"
Вероятно, существует [эта ссылка]:
libgfortran.so.3 -> libgfortran.so.3.0.0
Найдите эту библиотеку на вашей машине:
locate libgfortran.so
[...] Обновите ссылки Matlab, чтобы указать на эти новые версии:
sudo ln -sf [location of libgfortran.so.3.0.0] "$MATLABDIR/bin/glnxa64/libgfortran.so.3"
Ответ 2
I (думаю, я) исправил эту проблему, запустив matlab с LD_PRELOAD, вроде этого
LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libfreetype.so:/usr/lib/x86_64-linux-gnu/libgfortran.so.3 matlab
Обратите внимание, что freetype была другой библиотекой, с которой у меня была аналогичная проблема.
Ответ 3
В моем случае работала следующая команда:
sudo ln -sf /usr/lib/gcc/i686-linux-gnu/4.7/libgfortran.so /usr/local/MATLAB/R2012a/sys/os/glnx86/libgfortran.so.3
Matlab жалуется, что не может найти GFORTRAN1.4 в следующем местоположении:
/usr/lib/gcc/i686-linux-gnu/4.7/libgfortran.so
Поэтому я связал это местоположение с библиотекой, которую я имел:
/usr/local/MATLAB/R2012a/sys/os/glnx86/libgfortran.so.3
Я нашел расположение этой библиотеки, используя команду locate, как указано выше:) Спасибо за помощь:)
Ответ 4
В моем случае, исправлено с помощью
$ ln -sf/usr/lib64/libgfortran.so.3.0.0/opt/matlab/sys/os/glnxa64/libgfortran.so.3
Ошибки, которые я встречаю при использовании CDSP:
csdp:/opt/matlab/sys/os/glnxa64/libgfortran.so.3: версия GFORTRAN_1.4' not found (required by /usr/lib64/atlas/libptf77blas.so.3)
csdp: /opt/matlab/sys/os/glnxa64/libgfortran.so.3: version
GFORTRAN_1.4 'не найден (требуется/usr/lib64/atlas/libf77blas.so.3)
Ответ 5
Я просто столкнулся с той же проблемой (ошибка usr/lib64/libgfortran.so.3: version `gfortran_1.4 'не найдена), и на самом деле ее было нелегко исправить. Проблема заключается в том, что версия gfortran_1.4 libgfortran.so.3 поступает из выпуска gcc-4.6.2 (т.е. Fortran 4.6).
Что я сделал, было загружено gcc-4.6.2 и построено с помощью шагов: tar -xvf gcc-4.6.2.tar.gz cd gcc-4.6.2./contrib/download_prerequisites cd.. mkdir objdir cd objdir $PWD/../gcc-4.6.2/configure --prefix = $HOME/gcc-4.6.2 --enable-languages = c, fortran, С++, go make make install
Затем, как только все было сделано, я пошел в каталог, где сидел новый, свежий libgfortran.so.3 (в моем случае это было /home/testuser/objdir/x 86_64-unknown-linux-gnu/32/libgfortran/.libs/)
Я скопировал эту версию libgfortran.so.3 и пошел в каталог, где моя программа ожидала найти libgfortran.so.3. Я заменил старый (старый libgfortran.so.3) на новый (тот, который мы только что скопировали).
Проблема мгновенно исчезла. Надеюсь, это тоже поможет!