找不到-lgfortran

我正在尝试在R中安装一个包(包“ks”)。 它失败并显示错误消息:

/usr/bin/ld: cannot find -lgfortran 

我已经安装了Ubuntu包build-essential:

 sudo apt-get install build-essential 

我也尝试过添加符号链接:

 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 

我经常使用gcc和g ++,但还没有理由使用gfortran。

我在gcc-4.7上看过其他人有这个问题( http://ubuntuforums.org/showthread.php?t=2123821 ),所以我想知道这是不是来自手动安装gcc-4.7。 我按照这里和这里接受的答案的方式进行了处理 。

运行lsb_release -a打印

Ubuntu 12.04.2 LTS

并运行uname -r打印

3.2.0-39-仿制PAE

任何人都可以提供为什么ld不起作用的建议?

你需要安装gfortran。 该错误指出缺少构建时链接的静态库而不是您尝试调整的动态库。

对Cloud Oliver的答案稍作解释。

找出当前通过此命令使用的gcc版本。

 $sudo update-alternatives --config gcc * 2 /usr/bin/gcc-4.7 60 manual mode 

*的条目告诉我们正在使用哪个版本的GCC。 只需按Enter键即可保留当前设置。

如果它打印“没有gcc的替代品”,您可能必须使用此命令来查找版本:

 apt-cache policy gcc 
  1. cd到正确的gcc目录(用你的版本号替换):

     cd /usr/lib/gcc/x86_64-linux-gnu/4.7/ 
  2. 您可以使用以下命令搜索libgfortran.a (可选)。 就我而言,它存在于/usr/lib/gcc/x86_64-linux-gnu/4.8/目录中。

     find /usr/lib/gcc/x86_64-linux-gnu/ -name libgfortran.a 
  3. 创建符号链接:

     sudo ln -s /usr/lib/gcc/x86_64-linux-gnu/4.8/libgfortran.a libgfortran.a 

解:

 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 

我做了什么,如果g ++,gcc和g的版本相同或不相同,我会检查ubuntu。

我想如果你拥有所有三个相同的版本会更好。

 # 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 

对我来说,这解决了我在Ubuntu上使用RStudio在R中安装“TTR”软件包时遇到的所有问题。