Próbuję zainstalować pakiet w R (pakiet „ks”). Błąd kończy się komunikatem o błędzie:
/usr/bin/ld: cannot find -lgfortran
Zainstalowałem już pakiet Ubuntu niezbędny do kompilacji:
sudo apt-get install build-essential
Próbowałem także dodać linki symboliczne:
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
Używam gcc i g ++ regularnie, ale nie miałem jeszcze powodu, aby używać gfortran.
Widziałem innych z tym problemem na gcc-4.7 ( http://ubuntuforums.org/showthread.php?t=2123821 ), więc zastanawiam się, czy jest to spowodowane ręczną instalacją gcc-4.7. Postępowałem zgodnie z przepisem z przyjętej odpowiedzi tutaj i tutaj tutaj .
Uruchamianie lsb_release -a
wydruków
Ubuntu 12.04.2 LTS
i wykonywanie uname -r
wydruków
3.2.0-39-generic-pae
Czy ktoś może doradzić, dlaczego ld
nie działa?
Odpowiedzi:
Musisz zainstalować gfortran. Błąd wskazuje, że brakuje biblioteki statycznej dla łączenia w czasie kompilacji, a nie bibliotek dynamicznych, które próbowano dostosować.
źródło
sudo apt-get install gfortran
, dostaję0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
... Jakieś myśli?dpkg -S /usr/lib/gcc/x86)64-linux-gnu/4.6/libgfortran.a
odpowiedź, że pochodzi ona zgfortran-4.6
pakietu. Gcc szuka pliku .a. Jeśli zainstalowałeś inną wersję gcc, linker szuka wewnątrz libgfortran.a katalogu o podobnej nazwie.-L
(która jest w dużej mierze taka sama). Jeśli to się nie powiedzie, musisz zainstalować wersję 4.7 gfortran z ppa użytego dla gcc 4.7. Jaką masz wersję gfortran?Jeszcze trochę wyjaśnienia dla odpowiedzi Cloud Olivera.
Dowiedz się, która wersja gcc jest obecnie używana za pomocą tego polecenia.
Wpis z
*
informuje, która wersja GCC jest używana. Wystarczy nacisnąć Enter, aby zachować bieżące ustawienia.Jeśli wyświetla „brak alternatyw dla gcc”, być może będziesz musiał użyć tego polecenia, aby znaleźć wersję:
cd
do właściwego katalogu gcc (zamień numer wersji na swój):Możesz wyszukiwać za
libgfortran.a
pomocą następującego polecenia (opcjonalnie). W moim przypadku był on obecny w/usr/lib/gcc/x86_64-linux-gnu/4.8/
katalogu.Utwórz dowiązanie symboliczne:
źródło
Co zrobiłem, sprawdzam na Ubuntu, czy wersje g ++, gcc ig są takie same, czy nie.
Myślę, że lepiej, jeśli masz wszystkie trzy w tej samej wersji.
Dla mnie rozwiązało to wszystkie problemy, z którymi miałem do czynienia podczas instalowania pakietu „TTR” w R za pomocą RStudio na Ubuntu.
źródło
Rozwiązanie:
źródło
cd
przynajmniej osobna linia?cd /usr/lib/gcc/x86_64-linux-gnu/4.9.3
i wtedysudo ln -s /usr/lib/gcc/x86_64-linux-gnu/4.8/libgfortran.a libgfortran.a