2012-03-09 33 views
12

estoy recibiendo el siguiente error al intentar ejecutar un archivo mex en MATLAB:libgfortran: Versión `GFORTRAN_1.4' no se encuentra

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

Alguna idea de cómo solucionar este problema?

actualización: Me enteré de que "cadenas MATLAB /.../ libgfortran.so.3 | grep GFORTRAN" salida GFORTRAN_1.0. Traté de cambiar libgfortran dentro de MATLAB pero no funcionó. No creo que sea mejor encontrar una libblas adecuada que funcione con GFORTRAN_1.0.

Respuesta

12

lea this link, explica cómo configurar matlab en algunos sistemas Linux.

aquí los pasos que son relevantes para usted:

Para habilitar la ejecución de programas externos, [...] bibliotecas FORTRAN deben ser debidamente actualizados y vinculados. Mira el resultado de este comando:

ll "$MATLABDIR/bin/glnxa64/" 

Es probable que [este enlace] existe:

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

Búsqueda de [esta biblioteca] en su máquina:

locate libgfortran.so 

[ ...] Actualice los enlaces de Matlab para señalar estas versiones más recientes:

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

Gracias, esta respuesta debe aceptarse –

0

En mi caso, fijado por
$ ln -sf /usr/lib64/libgfortran.so.3.0.0 /opt/matlab/sys/os/glnxa64/libgfortran.so.3

errores de E cumplir al usar CDSP:
csdp: /opt/matlab/sys/os/glnxa64/libgfortran.so.3: versión 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 'no encontrado (requerido por /usr/lib64/atlas/libf77blas.so.3)

2

En mi caso, el siguiente comando funcionó:

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

Matlab se quejaba de que no podía encontrar el GFORTRAN1.4 en la siguiente ubicación:

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

Así que esta ubicación vinculada a la biblioteca que tenía:

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

Me pareció que la ubicación de esta biblioteca utilizando el comando localizar, ya dada anteriormente :) Gracias por la ayuda :)

3

I (creo) fijado este problema mediante la ejecución de MATLAB con LD_PRELOAD, como este

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

Nota: Freetype era otra biblioteca con la que tenía un problema similar.

+0

Tenga en cuenta que si no tiene permiso para editar '$ MATLABDIR/bin' esta puede ser su única opción. Parece funcionar para mi. – patrickvacek

0

Acabo de encontrarme con el mismo problema (error usr/lib64/libgfortran.so.3: versión `gfortran_1.4 'no encontrado) y en realidad no fue difícil de arreglar.El problema parece ser que gfortran_1.4 versión de libgfortran.so.3 proviene del lanzamiento gcc-4.6.2 (es decir, fortran 4.6).

Lo que hice fue descargado gcc-4.6.2 y construido, usando los pasos: tar -xvf gcc-4.6.2.tar.gz cd gcc-4.6.2 ./contrib/prensarestes de descarga cd .. mkdir objdir cd objdir $ PWD /../ gcc-4.6.2/configure --prefix = $ HOME/gcc-4.6.2 --enable-languages ​​= c, fortran, C++, ir make make install

Entonces, una vez todo fue hecho, fui al directorio donde estaba la nueva y fresca libgfortran.so.3 (en mi caso era /home/testuser/objdir/x86_64-unknown-linux-gnu/32/libgfortran/.libs/)

Copié esta versión de libgfortran.so.3, y fui al directorio donde mi programa esperaba encontrar libgfortran.so.3. Reemplacé el anterior (el antiguo libgfortran.so.3) con el nuevo (el que acabamos de copiar).

El problema desapareció al instante. ¡Espero que esto te ayude también!

Cuestiones relacionadas