instal - El paquete Building R obtiene el error "ld: no se puede encontrar-lgfortran"
install gfortran mac (7)
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: compilation 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?
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.
Para futuras almas perdidas, también ayuda a verificar todas las versiones del compilador (por https://askubuntu.com/questions/276892/cannot-find-lgfortran ). En mi caso, gcc y gfortran eran 4.8.4, pero g ++ era 4.6.
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 compilar. 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í.
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.
Comprueba qué versión de gcc, g ++ y gfortran tienes:
g++ --version gcc --version gfortran --version
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.
Si está usando gcc44, necesitará:
yum install gcc44-gfortran
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.
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 programa 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.