web-dev-qa-db-fra.com

Impossible de trouver -lgfortran

J'essaye d'installer un paquet dans R (paquet "ks"). Il échoue avec un message d'erreur:

/usr/bin/ld: cannot find -lgfortran

J'ai déjà installé le paquet Ubuntu build-essential:

Sudo apt-get install build-essential

J'ai aussi essayé d'ajouter des liens symboliques:

Sudo ln -s /usr/lib/x86_64-linux-gnu/libgfortran.so.3 /usr/lib/libgfortran.so
Sudo ln -s /usr/lib/libgfortran.so.3.0.0 /usr/lib/libgfortran.so
Sudo ldconfig

J'utilise gcc et g ++ régulièrement, mais je n'ai pas encore eu raison d'utiliser gfortran.

J'ai vu d'autres personnes avec ce problème sur gcc-4.7 ( http://ubuntuforums.org/showthread.php?t=2123821 ), donc je me demande s'il s'agit de l'installation manuelle de gcc-4.7. J'ai suivi la recette de la réponse acceptée ici ici et ici ici .

Exécution de lsb_release -a

Ubuntu 12.04.2 LTS

et en cours d'exécution uname -r

3.2.0-39-generic-pae

Quelqu'un peut-il offrir des conseils sur la raison pour laquelle ld ne fonctionne pas?

8
user

Vous devez installer Gfortran. L'erreur indique que la bibliothèque statique pour la liaison au moment de la construction manque, pas les bibliothèques dynamiques que vous avez essayé de régler.

3
rfindeis

Un peu plus d'explication à la réponse de Cloud Oliver.

Découvrez la version de gcc actuellement utilisée par cette commande.

$Sudo update-alternatives --config gcc

* 2            /usr/bin/gcc-4.7   60        manual mode

L'entrée avec * indique quelle version de GCC est utilisée. Appuyez simplement sur Entrée pour conserver les paramètres actuels.

Si elle n’affiche "aucune alternative pour gcc", vous devrez peut-être utiliser cette commande pour connaître la version:

apt-cache policy gcc
  1. cd dans le répertoire de droite gcc (remplacez le numéro de version par le vôtre):

    cd /usr/lib/gcc/x86_64-linux-gnu/4.7/
    
  2. Vous pouvez rechercher libgfortran.a à l'aide de la commande suivante (facultatif). Dans mon cas, il était présent dans le répertoire /usr/lib/gcc/x86_64-linux-gnu/4.8/.

    find /usr/lib/gcc/x86_64-linux-gnu/ -name libgfortran.a
    
  3. Créez le lien symbolique:

    Sudo ln -s /usr/lib/gcc/x86_64-linux-gnu/4.8/libgfortran.a libgfortran.a
    
8
PeacefulDaemon

Ce que j'ai fait, je vérifie sur Ubuntu si les versions de g ++, gcc et g sont identiques ou non.

Je suppose que c'est mieux si vous avez tous les trois de la même version.

# first check the versions:
gcc --version
g++ --version
gfortran --version

# If versions are different, then install:
Sudo apt-get update
apt-get install gcc-4.9 g++-4.9 gfortran-4.9

Pour moi, cela a résolu tous les problèmes auxquels je faisais face lors de l’installation du paquet "TTR" dans R en utilisant RStudio sur Ubuntu.

6
Manoj Kumar

Solution:

cd /usr/lib/gcc/x86_64-linux-gnu/4.6
Sudo ln -s /usr/lib/gcc/x86_64-linux-gnu/4.8/libgfortran.a libgfortran.a
4
Cloud Oliver