Cannot find -lgfortran
Solution 1
You need to install gfortran. The error points out that the static lib for build-time linking is missing not the dynamic libs you tried to adjust.
Solution 2
What I did, I check on ubuntu if the versions of g++, gcc and gfortran are the same or not.
I guess it is better if you have all the three of same 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
For me this resolved all the issues which I was facing while installing "TTR" package in R using RStudio on Ubuntu.
If you further run into the issue gfortran: command not found
, make sure that you have /usr/bin/gfortran
linking to the actual version of gfortran
you have installed (e.g. linking to gfortran-4.9
):
sudo update-alternatives --install /usr/bin/gfortran gfortran /usr/bin/gfortran-11 70
Solution 3
A little more explanation to Cloud Oliver's answer.
Find out the gcc version currently being used through this command.
$sudo update-alternatives --config gcc
* 2 /usr/bin/gcc-4.7 60 manual mode
The entry with *
tells which version of GCC is being used. Just press enter to keep the current settings.
If it prints "no alternatives for gcc", you might have to use this command to find out the version:
apt-cache policy gcc
cd
to the right gcc directory (replace the version number with yours):cd /usr/lib/gcc/x86_64-linux-gnu/4.7/
You can search for
libgfortran.a
with the following command (optional). In my case it was present in the/usr/lib/gcc/x86_64-linux-gnu/4.8/
directory.find /usr/lib/gcc/x86_64-linux-gnu/ -name libgfortran.a
Create the symlink:
sudo ln -s /usr/lib/gcc/x86_64-linux-gnu/4.8/libgfortran.a libgfortran.a
Solution 4
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
Related videos on Youtube
user
Updated on September 18, 2022Comments
-
user almost 2 years
I'm trying to install a package in R (package "ks"). It fails with error message:
/usr/bin/ld: cannot find -lgfortran
I've already installed the Ubuntu package build-essential:
sudo apt-get install build-essential
I've also tried adding symbolic links:
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
I use gcc and g++ regularly, but haven't yet had reason to use gfortran.
I've seen others with this problem on gcc-4.7 (http://ubuntuforums.org/showthread.php?t=2123821), so I wonder if this is from manually installing gcc-4.7. I followed the recipe from the accepted answer here here and here here.
Running
lsb_release -a
printsUbuntu 12.04.2 LTS
and running
uname -r
prints3.2.0-39-generic-pae
Can anyone offer advice for why
ld
doesn't work?-
Andrejs Cainikovs about 11 yearsYou tried to make symbolic links against runtime libraries, not the ones that linker wants (*.a dev libs). Looks like the path issue.
-
-
user about 11 yearsWhen I try
sudo apt-get install gfortran
, I get0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
... Any thoughts? -
rfindeis about 11 yearsWell, on my system I get for
dpkg -S /usr/lib/gcc/x86)64-linux-gnu/4.6/libgfortran.a
the answer that this is from thegfortran-4.6
package. Gcc is looking for the .a file. If you installed another gcc version, the linker is looking inside a similarly named directory for libgfortran.a. -
Andrejs Cainikovs about 11 yearsLooks like a valid answer.
-
user about 11 yearsI needed to use the same trick as installing gcc-4.7 to install gfortran-4.7.
-
Volker Siegel over 9 yearsCould you make it a little more verbose? Maybe a separate
cd
line at least? -
s3lph over 9 yearsPlease add an explanation. People should never blindly run commands they find on the internet. So please also don't write them.
-
Zhubarb over 7 yearsThank you, this solved it for me! In my case it was
cd /usr/lib/gcc/x86_64-linux-gnu/4.9.3
and thensudo ln -s /usr/lib/gcc/x86_64-linux-gnu/4.8/libgfortran.a libgfortran.a
-
Yonatan Simson almost 6 yearsThis is the correct solution. None of the above solutions worked for me
-
Ufos over 5 yearsI am on gcc 6.5, but the same methods solved the issue. Interestingly, same source: an obscure R package.
-
Manoj Kumar over 5 yearsYes, this was one best solution I could think of.
-
ZachB about 4 yearsYou should use the gfortran lib that matches the compiler instead of mixing versions. Manoj Kumar's answer below is correct.
-
ZachB about 4 yearsMore generally:
apt install gfortran-<your GCC version>
. -
Rγσ ξηg Lιαη Ημ about 3 yearsI faced same error and eventually
~$ sudo apt-get install libgfortran-*
to install all versions to cope with it. thesesudo apt-get install r-cran-ks
very useful which can let us install through terminal :)