-lgfortran을 찾을 수 없습니다


12

R에 패키지를 설치하려고합니다 (패키지 "ks"). 오류 메시지와 함께 실패합니다.

/usr/bin/ld: cannot find -lgfortran

우분투 패키지 빌드 필수를 이미 설치했습니다.

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인쇄 실행

우분투 12.04.2 LTS

uname -r인쇄 실행

3.2.0-39- 제네릭 페

ld작동하지 않는지 조언 해 줄 사람이 있습니까?


1
링커가 원하는 것이 아닌 런타임 라이브러리 에 대해 심볼릭 링크를 만들려고했습니다 (* .a dev libs). 경로 문제처럼 보입니다.
Andrejs Cainikovs

답변:


5

gfortran을 설치해야합니다. 오류는 빌드 타임 링크를위한 정적 라이브러리가 조정하려는 동적 라이브러리가 없음을 나타냅니다.


내가 시도하면 sudo apt-get install gfortran, 나는 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.... 어떤 생각?
사용자

글쎄, 내 시스템 dpkg -S /usr/lib/gcc/x86)64-linux-gnu/4.6/libgfortran.a에서 이것이 gfortran-4.6패키지 에서 온 대답을 얻습니다 . Gcc는 .a 파일을 찾고 있습니다. 다른 gcc 버전을 설치 한 경우 링커는 비슷한 이름의 libgfortran.a 디렉토리 내부를 찾습니다.
rfindeis

올바른 답변처럼 보입니다.
Andrejs Cainikovs

4.7 컴파일러에 대한 4.6 라이브러리의 기호 링크가 작동 할 수 있습니다. 또한 -L(대부분 동일)로 올바른 경로를 전달합니다 . 이것이 실패하면 gcc 4.7에 사용한 ppa에서 4.7 버전의 gfortran을 설치해야합니다. 현재 어떤 gfortran 버전이 있습니까?
rfindeis

gfortran-4.7을 설치하기 위해 gcc-4.7을 설치하는 것과 동일한 트릭을 사용해야했습니다.
사용자

9

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
    

7

내가 한 일은 g ++, gcc 및 g 버전이 동일한 지 우분투에서 확인합니다.

당신이 같은 버전의 세 가지를 모두 가지고 있으면 더 나은 것 같아요.

# 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"패키지를 설치하는 동안 직면 한 모든 문제를 해결했습니다.


1
이것이 올바른 해결책입니다. 위의 해결책 중 어느 것도 나를 위해 일하지 않았습니다
Yonatan Simson

1
나는 gcc 6.5에 있지만 동일한 방법으로 문제를 해결했습니다. 흥미롭게도, 같은 출처 : 모호한 R 패키지.
Ufos

예, 이것이 제가 생각할 수있는 최고의 솔루션이었습니다.
Manoj Kumar

4

해결책:

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

좀 더 장황하게 만들 수 있습니까? 어쩌면 cd적어도 별도의 줄입니까?
Volker Siegel 5

2
설명을 추가하십시오. 사람들은 인터넷에서 찾은 명령을 맹목적으로 실행해서는 안됩니다. 따라서 작성하지 마십시오.
s3lph

고맙습니다.이 문제가 해결되었습니다! 내 경우에는 그것이 있었다 cd /usr/lib/gcc/x86_64-linux-gnu/4.9.3다음과 sudo ln -s /usr/lib/gcc/x86_64-linux-gnu/4.8/libgfortran.a libgfortran.a
Zhubarb
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.