El paquete Building R obtiene el error “ld: no se puede encontrar -lgfortran”

Estoy tratando de instalar el paquete lars. Ubuntu 11.04 Natty de 64 bits. Desde la construcción, obtengo:

* installing *source* package âlarsâ ... ** libs gfortran -fpic -O3 -pipe -g -c delcol.f -o delcol.o gcc -shared -o lars.so delcol.o -lgfortran -lm -L/usr/lib64/R/lib -lR /usr/bin/ld: cannot find -lgfortran collect2: ld returned 1 exit status make: *** [lars.so] Error 1 ERROR: comstacktion failed for package âlarsâ 

gfortran está instalado y cuando corro gfortran --version consigo

gfortran –version GNU Fortran (Ubuntu / Linaro 4.5.2-8ubuntu4) 4.5.2

sudo ldconfig -v da el error

/sbin/ldconfig.real: No se puede establecer /usr/lib/libgfortran.so: ningún archivo o directorio

Ya he eliminado y reinstalado gfortran. ¿Qué necesito para arreglar esto?

Para la familia Debian / Ubuntu, generalmente recomendamos

  $ sudo apt-get install r-base-dev 

ya que extrae todos los paquetes que se necesitan comúnmente para comstackr. Y este enfoque se pone a prueba todo el tiempo, ya que los creadores de paquetes automatizados se basan en esto (así como en Build-Depends adicionales por paquete). El paquete gfortran está listado aquí también; tal vez tengas un enlace roto de una instalación anterior, así que también probaría dpkg --purge gfortran; apt-get install gfortran dpkg --purge gfortran; apt-get install gfortran . Dicho esto, docenas de paquetes R (y R en sí) usan Fortran por lo que no debería haber ninguna magia aquí.

Tuve el mismo problema al intentar instalar el paquete CRAN VGAM en Ubuntu 12.10 64 bits. Ya tenía instalado r-base-dev, pero el segundo comentario de Andrew Redd a la respuesta de Dirk Eddelbuettel funcionó para mí.

Específicamente, estaba obteniendo dos errores:

 /usr/bin/ld: cannot find -lgfortran /usr/bin/ld: cannot find -lquadmath 

Que fueron arreglados por las líneas:

 sudo ln -s /usr/lib/x86_64-linux-gnu/libgfortran.so.3 /usr/lib/libgfortran.so sudo ln -s /usr/lib/x86_64-linux-gnu/libquadmath.so.0 /usr/lib/libquadmath.so 

Tenga en cuenta que solo la primera línea sería necesaria para resolver el problema desde la publicación original. La segunda línea solucionó mi error adicional con lquadmath.

Parece que otras sugerencias ya arreglaron su problema, pero su pregunta también se aplicó a mí, pero la solución fue diferente en mi caso. Mi problema era que mis versiones de gcc y g ++ diferían de mi versión de gfortran. Usé lo siguiente para cambiarlos de modo que fueran todos iguales.

  1. Comprueba qué versión de gcc, g ++ y gfortran tienes:

     g++ --version gcc --version gfortran --version 
  2. Combínalos para que todos sean iguales:

     sudo update-alternatives --config g++ sudo update-alternatives --config gcc sudo update-alternatives --config gfortran 

En mi caso, solo tenía una versión de gfortran, así que simplemente cambié las versiones de g ++ y gcc para que coincidieran con las de gfortran.

Mismo problema al instalar el paquete R minqa en ubuntu 12.04, R3.1.0., Un x86 32bits (en realidad era parte de la instalación del paquete caret).

Resuelto por

sudo ln -s /usr/lib/i386-linux-gnu/libgfortran.so.3 /usr/lib/libgfortran.so

La reinstalación de r-base-dev no funcionó y no traté de volver a instalar gfortran debido a todas las dependencias.

Dependiendo del sistema / versión,

ls -l /usr/lib/libgfortran.so

comprueba que el enlace existe / es correcto.

Yo uso Centos y no puedo obtener r-base-dev. También instalé gfortran y su versión coincide con la de gcc y g ++; todavía no funcionó. Sin embargo, resolví este problema creando ~/.R/Makevars , usando

 cd ~ mkdir .R touch Makevars 

Encontré el directorio donde instalé gfortran (aparentemente el problema es que R no puede encontrarlo) por

 which gfortran 

Decía que instalé gfortran en usr/bin/gfortran . Luego agregué banderas a .R/Makevars para decirle a R que use:

 F77 = /usr/bin/gfortran FC = $F77 FLIBS = -L/usr/bin/gfortran 

Puede editar el archivo Makevars de esta manera:

 vi .R/Makevars 

Ahora ha ingresado al progtwig vi que puede editar archivos de texto. Escriba i para editar; Verás INSERT en la parte inferior de la ventana de la terminal. Entonces puedes ingresar lo que puse arriba. Para guardar los cambios y salir de vi , presione la tecla :wq y escriba :wq .

No estoy seguro si coloco la línea FLIBS correctamente, ya que es muy diferente para MacOS. En MacOS, hay un directorio bajo gfortran que tiene las bibliotecas para enlazar, pero aparentemente gfortran no es un directorio en Linux. Al menos esto funcionó para mí, y también resolvió el problema de /usr/bin/ld: cannot find -lquadmath , así que instalé paquetes R que requieren gfortran sin problemas.

Si está usando gcc44, necesitará:

 yum install gcc44-gfortran 

Para futuras almas perdidas, también ayuda a verificar todas las versiones del comstackdor (por https://askubuntu.com/questions/276892/cannot-find-lgfortran ). En mi caso, gcc y gfortran eran 4.8.4, pero g ++ era 4.6.