web-dev-qa-db-ja.com

-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 )を見てきました。私はここで受け入れられた答えからレシピに従いました here およびhere here

lsb_release -a印刷を実行

Ubuntu 12.04.2 LTS

実行中uname -r印刷

3.2.0-39-generic-pae

ldが機能しない理由についてだれでもアドバイスできますか?

8
user

Gfortranをインストールする必要があります。エラーは、ビルド時リンクの静的ライブラリが、調整しようとした動的ライブラリではなく欠落していることを指摘しています。

3
rfindeis

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
    
8
PeacefulDaemon

私がやったことは、g ++、gcc、およびgのバージョンが同じであるかどうか、ubuntuで確認します。

同じバージョンの3つすべてを持っている方が良いと思います。

# 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」パッケージをインストールするときに直面していたすべての問題を解決しました。

6
Manoj Kumar

解決:

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