2012-03-09 5 views
12

otrzymuję następujący błąd podczas próby uruchomienia pliku mex w MATLAB:libgfortran: wersja `GFORTRAN_1.4' Nie znaleziono

??? 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) 

pomysłów, jak rozwiązać ten problem?

Aktualizacja:

aktualizacja: Okazało się, że "ciągi MATLAB /.../ libgfortran.so.3 | grep GFORTRAN" wyjście GFORTRAN_1.0. Próbowałem zmienić libgfortran wewnątrz MATLAB, ale to nie zadziałało. Nie sądzę, że lepiej jest znaleźć odpowiednie libblas, które działa z GFORTRAN_1.0.

Odpowiedz

12

przeczytać this link, wyjaśnia jak skonfigurować Matlab w niektórych systemach Linux.

tutaj kroki, które są odpowiednie dla Ciebie:

Aby umożliwiają uruchamianie programów zewnętrznych, [...] biblioteki Fortran muszą być odpowiednio zaktualizowane i powiązane. Spójrz na wynik tego polecenia:

ll "$MATLABDIR/bin/glnxa64/" 

Jest prawdopodobne, że [link] istnieje:

libgfortran.so.3 -> libgfortran.so.3.0.0 

Szukaj [tej biblioteki] na komputerze:

locate libgfortran.so 

[ ...] Zaktualizuj łącza Matlab do wskazania tych nowszych wersji:

sudo ln -sf [location of libgfortran.so.3.0.0] "$MATLABDIR/bin/glnxa64/libgfortran.so.3" 
+0

Dzięki, ta odpowiedź powinna być zaakceptowana –

0

W moim przypadku, ustalony przez
$ ln -sf /usr/lib64/libgfortran.so.3.0.0 /opt/matlab/sys/os/glnxa64/libgfortran.so.3

Błędów I spotkać się przy użyciu CDSP:
csdp: /opt/matlab/sys/os/glnxa64/libgfortran.so.3: wersja GFORTRAN_1.4' not found (required by /usr/lib64/atlas/libptf77blas.so.3)
csdp: /opt/matlab/sys/os/glnxa64/libgfortran.so.3: version
Nie znaleziono GFORTRAN_1.4 '(wymagane przez /usr/lib64/atlas/libf77blas.so.3)

2

W moim przypadku następujące polecenie działało:

sudo ln -sf /usr/lib/gcc/i686-linux-gnu/4.7/libgfortran.so /usr/local/MATLAB/R2012a/sys/os/glnx86/libgfortran.so.3 

Matlab narzekał, że nie mógł znaleźć GFORTRAN1.4 w następującej lokalizacji:

/usr/lib/gcc/i686-linux-gnu/4.7/libgfortran.so 

Więc połączone tę lokalizację do biblioteki miałem:

/usr/local/MATLAB/R2012a/sys/os/glnx86/libgfortran.so.3 

znalazłem lokalizację tej biblioteki za pomocą polecenia zlokalizuj jak podano wyżej :) Dzięki za pomoc :)

3

I (Chyba) ustalony ten problem, uruchamiając Matlab z LD_PRELOAD, jak to

LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libfreetype.so:/usr/lib/x86_64-linux-gnu/libgfortran.so.3 matlab

Zauważ, że freetype to kolejna biblioteka, w której miałem podobny problem.

+0

Pamiętaj, że jeśli nie masz uprawnień do edycji '$ MATLABDIR/bin', może to być Twój jedyny wybór. Wydaje się, że pracujesz dla mnie. – patrickvacek

0

Po prostu wpadłem na ten sam problem (nie znaleziono błędu usr/lib64/libgfortran.so.3: version `gfortran_1.4 ') i nie było to trudne do naprawienia.Problem polega na tym, że wersja libgfortran.so.3 gfortran_1.4 pochodzi z wydania gcc-4.6.2 (tj. Fortran 4.6).

Co zrobiłem, został pobrany gcc-4.6.2 i zbudowany, używając kroków: 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, C++, idź make make install

Następnie, gdy wszystko został zrobiony, poszedłem do katalogu, w którym znajdowała się nowa, świeża biblioteka libgfortran.so.3 (w moim przypadku była to/home/tester /objdir/x86_64-unknown-linux-gnu/32/libgfortran/.libs/)

Skopiowałem tę wersję libgfortran.so.3 i przeszedłem do katalogu, w którym mój program spodziewał się znaleźć libgfortran.so.3. Wymieniłem stary (stary libgfortran.so.3) na nowy (ten, który właśnie skopiowaliśmy).

Problem natychmiast zniknął. Mam nadzieję, że to wam pomoże!