找不到-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
-
cd
到正确的gcc目录(用你的版本号替换):cd /usr/lib/gcc/x86_64-linux-gnu/4.7/
-
您可以使用以下命令搜索
libgfortran.a
(可选)。 就我而言,它存在于/usr/lib/gcc/x86_64-linux-gnu/4.8/
目录中。find /usr/lib/gcc/x86_64-linux-gnu/ -name libgfortran.a
-
创建符号链接:
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”软件包时遇到的所有问题。