GLIBCXX_3.4.20 bulunamadı, bu hatayı nasıl giderebilirim?

90

Prensip Düzen Düzenleyici programını çalıştırmayı denedim ( bu sitede ) Ubuntu 14.04.1 64-bit LTS Terminalde aşağıdaki çıkışı elde ediyorum:

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

Aşağıdaki gibi strings komutunu /usr/lib/x86_64-linux-gnu/libstdc++.so.6 olarak denedim ve giriş ve çıkış:

$ 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

Bu sorunu nasıl çözebilirim? Bunun bir şekilde GCC ile ilgili olduğunu, ancak sorunun nasıl çözüleceğini anlayamadığımı tahmin ediyorum. Ayrıca, En son GCC'yi Ubuntu'da nasıl kullanırım? ve Ubuntu'nun eski sürümü için benzer bir soru var GLIBCXX_3.4.15 bulunamadı. . Ancak, sudo update çalıştırdıktan sonra çok sayıda uyarı alıyorum ve dize ile elde ettiğim liste gcc 4.9 'yi yükledikten sonra yeni girişlere sahip değildi, bu yüzden PPA'yı temizledim ( Toolchains Test Yapıları ) ppa-purge ile. Herhangi bir yardım, nasıl ilerleneceğine dair öneriler büyük beğeni topluyor.

    
sordu Vesnog 19.01.2015 21:36

6 cevap

85

Başka bir programı çalıştırmaya çalışırken aynı sorunu yaşıyordum ve StackOverflow .

Temel olarak, sadece aşağıdaki komutları yapın: Öncelikle yükleyin:

sudo apt-get install libstdc++6

Bu zaten varsayılan olarak yüklenmeli, ancak yine de deneyin. Eğer çözmezse, aşağıdakileri yapın:

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

"dist-upgrade" komutunu yerine getirmedim, ancak benim için çözmeden önce olanlar benim için

    
verilen cevap Paulo 08.02.2015 01:32
55

Anaconda 4.0.0 ile bana geldi (Mjp'nin belirttiği gibi), ama benim için bu düzeltmeyi çevremde bu komutu çalıştırmak oldu:

conda install libgcc
    
verilen cevap neok 14.06.2016 17:37
10

Bu sorunu yaşadım - Anaconda2 'in ne olursa olsun GLIBCXX_3.4.20 sürümüne sahip olmamasıydı. Sadece 19'a kadar, seninkiyle aynı.

Ancak, Ubuntu'nun kitaplığı var . Bu yüzden, sadece bir öncekinin yerini alan GLIBCXX_3.4.20'i içeren gerçek Linux kütüphanesine Anaconda kütüphanesinde bir softlink / kısayol oluşturdum ve python GUI'yi (Spyder) yeniden başlattıktan sonra iyi çalıştı.

Anaconda kütüphanesinde libstdc++.so.6 adlı bir klasör bulunmalıdır. Burada%:% co_de. Bu klasörde, eksik olanı hariç olmak üzere, komut dosyası / kitaplık-kod-şeyinin sürümleri bulunur: GLIBCXX_3.4.20

Sorunu çözmek için şu adımları izleyin:

  1. geçerli ~/anaconda2/lib kısayolunuzun doğru konumuna gidip yedekleyin (bunun üzerine yazılmayacak şekilde adını değiştirin):

    cd ~/anaconda2/lib
    mv -vf libstdc++.so.6 libstdc++.so.6.old
    
  2. anaconda2 komutunu kullanarak yeni bir kısayol oluştur (ben önceki konumda olduğumu kabul ediyorum ~ / anaconda2 / lib):

    ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 ./libstdc++.so.6
    
  3. Kullandığınız spyder / diğer arayüzü yeniden başlatın

Şimdi çalışmalı!

    
verilen cevap mjp 28.04.2016 23:09
3

CentOS'taki gibi (ama GLIBCXX_3.4.21) problemi çözdüm ama os'a bağlı değil. Kütüphane, gcc derleyicisinin bir parçasıdır; bu nedenle, gcc'nin uygun sürümünü kurmanız veya derlemeniz gerekir. Bu, gcc sürümlerinin tablosu ve uygun libstdc ++ sürümleridir:

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

(sürümlerin tam listesi burada )

Gcc'nin nasıl kurulacağına bağlı değildir - paketten yüklenebilir veya derlenmiş ve kaynaklardan yüklenebilir.

Sistem gcc kitaplıklarının yeni kurulmuş yerine kullanılabilir olması mümkündür. Bu nedenle, örneğin, komut satırında kütüphaneleri bulmak için ortam değişkenini belirtmeniz gerekir:

$ LD_LIBRARY_PATH=/usr/local/lib64 command args ...
    
verilen cevap oklas 19.03.2018 13:50
2

Yıllar boyunca birçok farklı paketle birçok kez yaşadım. Her zaman tarafından çözüldü:

sudo apt-get dist-upgrade

Eğer dağıtımınız yükseltilebilirse, hemen hemen her zaman yeni bir C ++ kütüphanesi getirecek ve tekrar çalıştıkları gibi şeyleri yeniden yapılandıracaktır. Sorun neredeyse her zaman sisteminizin doğru kütüphaneye işaret etmemesinden kaynaklanmaktadır. Benim durumumda, genellikle bir kütüphanenin çapraz derleyici sürümüne işaret ederek ortaya çıkar.

    
verilen cevap Bryan Wilcutt 23.09.2016 17:25
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/
    
verilen cevap Mati 11.11.2015 21:55

Etiketlerdeki diğer soruları oku