GLIBCXX_3.4.20를 찾을 수 없습니다.이 에러를 어떻게 고치나요?


104

유장 나는 우분투 14.04.1 64 비트 LTS 에서 프로그램 레이아웃 편집기 ( 이 사이트에서 사용 가능) 를 실행하려고 하면 터미널에서 다음과 같은 출력을 얻습니다.

$ layout
layout: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by layout)

다음과 같이 명령 strings을 시도했으며 /usr/lib/x86_64-linux-gnu/libstdc++.so.6여기에 입력 및 출력이 있습니다.

$ strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_DEBUG_MESSAGE_LENGTH

이 문제를 어떻게 해결할 수 있습니까? 어떻게 문제와 관련이 GCC있지만 문제를 해결하는 방법을 알 수는 없습니다. 또한 우분투에서 최신 GCC를 어떻게 사용합니까?에서 제안한대로 PPA를 시도했습니다 . 그리고 GLIBCXX_3.4.15 에있는 Ubuntu의 이전 버전과 유사한 질문이 없습니다 . 그러나 실행 한 후 sudo update많은 경고가 표시되고 strings 명령으로 얻은 목록에 설치 후 새 항목이 없으므로 gcc 4.9PPA ( Toolchains Test Builds )를 제거했습니다 ppa-purge. 진행하는 방법에 대한 도움, 제안은 대단히 감사합니다.


이미 해결책을 찾았습니까?
Steven Roose

1
@StevenRoose 나는 백 포트를 추가하고 소프트웨어를 설치 한 후에 문제를 해결할 수 있었지만 기억할 때 세부 사항을 명확하게 기억하지 못하여 답변으로 게시 할 것입니다.
Vesnog

이것이 심볼 링크의 효과 인 것 같습니다 : stackoverflow.com/questions/2856438/… 최근에 라이브러리 버전에 충분히 연결되어 있지 않습니다.
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件

답변:


102

다른 프로그램을 실행하려고 할 때 동일한 문제가 발생하여 StackOverflow 에서 솔루션을 찾았습니다 .

기본적으로 다음 명령을 수행하십시오. 먼저 설치하십시오.

sudo apt-get install libstdc++6

이미 기본적으로 설치되어 있지만 어쨌든 시도하십시오. 그래도 해결되지 않으면 다음을 수행하십시오.

sudo add-apt-repository ppa:ubuntu-toolchain-r/test 
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade

"dist-upgrade"명령을 수행하지 않았지만 이전의 명령으로 해결되었습니다.


6
sudo apt-get dist-upgrade는 내 문제를 해결했다
ady

2
시스템이 제안 된 dist-upgrade대로 필요없이 해결 upgrade되고 최신 시스템으로 시스템을 업데이트했습니다.libstdc++
arainone

2
저장소 추가에는 '업데이트'와 'dist-upgrade'가 모두 필요했습니다.
virtualxtc

5
업데이트 후에는 GLIBCXX의 최신 버전을 확인하실 수 있습니다strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX
크리 샨 쿠마르 Mourya

1
우분투 16.04 : 2017 년 11 월, GLIBCXX_3.4.24 이상으로 업데이트 된 추가 기능을 통해 '신뢰할 수없고 지원되지 않는' ppa : ubuntu-toolchain-r / test 추가 -이 외에도 기본적으로 모든 c / c ++ / fortran 업데이트 컴퓨터의 개발 도구apt-repository/usr/lib/x86_64-linux-gnu/libstdc++.so.6
knb

60

아나콘다 4.0.0 (@mjp가 언급했듯이)이 발생했지만 수정은 내 환경 에서이 명령을 실행하는 것이 었습니다.

conda install libgcc

6
이것은 다른 스레드에서 많은 솔루션을 시도한 후에 해결되었습니다.
Shawn Anderson

3
우분투 16.04에서도 작동
fviktor

1
이것은 내 엉덩이를 두 번 실제로 구했습니다!
MBZ

우분투 16.04-해결했습니다.
Zhubarb

이것은 훨씬 낫습니다. 나를 위해 일했습니다.. 파이썬에서 'ROOT를 가져 오기'하려고했습니다
MycrofD

11

나는이 문제가 있었다- Anaconda2그 것이 무엇이든간에 GLIBCXX_3.4.20 버전 이 없었기 때문 입니다. 귀하와 같은 최대 .19까지.

그러나 우분투의 도서관에는 그것을 가지고 있습니다 . 그래서 방금 Anaconda 라이브러리에서 해당 GLIBCXX_3.4.20을 포함하는 실제 Linux 라이브러리에 대한 소프트 링크 / 바로 가기를 작성하여 이전 것을 대체하고 파이썬 GUI (Spyder)를 다시 시작한 후에 제대로 작동했습니다.

libstdc++.so.6Anaconda 라이브러리 에는 다음과 같은 폴더가 있어야합니다 ~/anaconda2/lib. 이 폴더에는 누락 된 스크립트를 제외한 스크립트 / 라이브러리 코드 버전이 있습니다. GLIBCXX_3.4.20

다음 단계에 따라 문제를 해결하십시오.

  1. 올바른 위치로 이동 하여 현재 바로 가기를 백업 하십시오 anaconda2(이름을 덮어 쓰지 않도록 변경 하십시오 ).

    cd ~/anaconda2/lib
    mv -vf libstdc++.so.6 libstdc++.so.6.old
    
  2. ln명령을 사용하여 새 바로 가기를 만듭니다 (이전 위치 ~ / ​​anaconda2 / lib에 있다고 가정합니다).

    ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 ./libstdc++.so.6
    
  3. 스파이더 / 다른 인터페이스를 다시 시작하십시오.

이제 작동합니다!


나를 위해 그것은 단지 conda .so의 이름을 바꾸는 것으로 충분했습니다. 링크가 필요없는 os 버전을 찾았습니다
Mingwei Samuel

7

CentOS에서 이와 같은 문제 (그러나 GLIBCXX_3.4.21)를 해결했지만 os와는 관련이 없습니다. 라이브러리는 gcc 컴파일러의 일부이므로 적절한 버전의 gcc를 설치하거나 컴파일해야합니다. 다음은 gcc 버전과 적절한 libstdc ++ 버전 표입니다.

GCC 4.9.0: libstdc++.so.6.0.20
GCC 5.1.0: libstdc++.so.6.0.21
GCC 6.1.0: libstdc++.so.6.0.22
GCC 7.1.0: libstdc++.so.6.0.23
GCC 7.2.0: libstdc++.so.6.0.24
GCC 8.0.0: libstdc++.so.6.0.25

(버전의 전체 목록은 여기 )

gcc 설치 방법에 의존하지 않습니다. 패키지에서 설치하거나 소스에서 컴파일하여 설치할 수 있습니다.

새로 설치하지 않고 시스템 gcc 라이브러리를 사용할 수 있습니다. 따라서 명령 줄에서 다음과 같이 라이브러리를 찾을 수있는 환경 변수를 지정해야합니다.

$ LD_LIBRARY_PATH=/usr/local/lib64 command args ...

이 명령으로 /usr/lib64/libstdc++.so.6가지고있는 최신 버전을 가리 키도록 링크 를 업데이트 하여이 문제를 영구적으로 해결했습니다 . 이전 버전은 되돌려 야 할 경우 링크가없는 상태로 유지됩니다. 약간의 해킹이지만 작동합니다. /usr/local/lib64/libstdc++.so.6ln -fs /usr/local/lib64/libstdc++.so.6 /usr/lib64/libstdc++.so.6
마태 복음

2

나는 여러 가지 다른 패키지로 수년 동안 여러 번 그랬습니다. 항상 다음에 의해 해결되었습니다.

sudo apt-get dist-upgrade

dist가 업그레이드 가능한 경우 거의 항상 새로운 C ++ 라이브러리를 중단하고 다시 작동하는 것과 같은 것을 재구성합니다. 문제는 시스템이 올바른 라이브러리를 가리 키지 않기 때문에 거의 항상 발생합니다. 필자의 경우 일반적으로 크로스 컴파일러 버전의 라이브러리를 가리켜 서 발생합니다.


2

before_install :

SASS 지원으로 "확장 된"hugo를 실행하는 동안 libstdc ++ 오류를 방지하려면이 해결 방법이 필요합니다.

  • wget -q -O libstdc++6 http://security.ubuntu.com/ubuntu/pool/main/g/gcc-5/libstdc++6_5.4.0-6ubuntu1~16.04.10_amd64.deb
  • sudo dpkg --force-all -i libstdc++6

설치:

  • wget -q -O hugo.deb https://github.com/gohugoio/hugo/releases/download/v0.46/hugo_extended_0.46_Linux_64bit.deb
  • sudo dpkg -i hugo.deb

이 솔루션을 여기 에서 찾았 습니다.


1
sudo cp /usr/bin/YourGccVersionLibrary/lib64/libstdc++.so.6 /usr/bin/YourGccVersionLibrary/lib64/libstdc++.so.6.0.20 /usr/lib/x86_64_linux-gnu/

5
Ask Ubuntu에 오신 것을 환영합니다! 이 명령을 달성하기위한 구체적인 세부 정보로 확장 하려면 이 답변을 편집 하는 것이 좋습니다 . Ask Ubuntu에서 어떤 종류의 답변이 가장 가치있는 것으로 간주되는지에 대한 일반적인 조언은 좋은 답변을 작성하는 방법 도 참조하십시오 .
David Foerster

6
cp그렇지 ln -s않습니까?
AB
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.