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
が機能しない理由についてだれでもアドバイスできますか?
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
私がやったことは、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」パッケージをインストールするときに直面していたすべての問題を解決しました。
解決:
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