Serwatka Próbuję uruchomić program Layout Editor (dostępny na tej stronie ) na Ubuntu 14.04.1 64-bit LTS. W terminalu otrzymuję następujące dane wyjściowe:
$ layout
layout: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by layout)
Wypróbowałem polecenie strings
w /usr/lib/x86_64-linux-gnu/libstdc++.so.6
następujący sposób, a oto dane wejściowe i wyjściowe:
$ 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
Jak mogę rozwiązać ten problem? Jakoś domyślam się, że jest to związane, GCC
ale nie mogę znaleźć sposobu na rozwiązanie problemu. Ponadto wypróbowałem PPA zgodnie z sugestią na temat Jak korzystać z najnowszego GCC na Ubuntu? i podobne pytanie dotyczy starszej wersji Ubuntu pod adresem GLIBCXX_3.4.15 . Jednak po uruchomieniu sudo update
dostaję wiele ostrzeżeń, a lista uzyskana za pomocą polecenia strings nie ma nowych wpisów po instalacji gcc 4.9
, więc wyczyściłem PPA ( Toolchains Test Builds ) ppa-purge
. Każda pomoc, sugestie dotyczące dalszego postępowania są bardzo mile widziane.
źródło
Odpowiedzi:
Miałem ten sam problem podczas próby uruchomienia innego programu i znalazłem rozwiązanie na StackOverflow .
Zasadniczo wykonaj następujące polecenia: Po pierwsze zainstaluj:
To powinno być już domyślnie zainstalowane, ale i tak spróbuj. Jeśli to nie rozwiąże, wykonaj następujące czynności:
Nie wykonałem polecenia „dist-upgrade”, ale te wcześniej rozwiązałem dla mnie
źródło
dist-upgrade
zgodnie zupgrade
propozycją i zaktualizowany mój system z najnowszymlibstdc++
strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX
apt-repository
updated/usr/lib/x86_64-linux-gnu/libstdc++.so.6
do GLIBCXX_3.4.24 włącznie - a poza tym aktualizacje te są w zasadzie WSZYSTKIE c / c ++ / fortran narzędzia programistyczne na twoim komputerzeZdarzyło mi się to z anacondą 4.0.0 (jak stwierdził @mjp), ale poprawką było dla mnie uruchomienie tego polecenia w moim środowisku:
źródło
Miałem ten problem - to dlatego,
Anaconda2
że nie miałem wersji GLIBCXX_3.4.20 jakiejkolwiek rzeczy. Tylko do 0,19, tyle samo co twoje.Jednak biblioteka Ubuntu miała to . Właśnie utworzyłem softlink / skrót w bibliotece Anaconda do faktycznej biblioteki Linuksa zawierającej ten GLIBCXX_3.4.20, zastępując poprzednią, i działał dobrze po ponownym uruchomieniu graficznego interfejsu użytkownika python (Spyder).
Nie powinno być folder o nazwie
libstdc++.so.6
w bibliotece Anaconda, która jest tutaj:~/anaconda2/lib
. W tym folderze znajdują się wersje skryptu / biblioteki-kodu-rzeczy, z wyjątkiem tej, której brakuje: GLIBCXX_3.4.20Wykonaj następujące kroki, aby rozwiązać problem:
przejdź do właściwej lokalizacji i wykonaj kopię zapasową bieżącego
anaconda2
skrótu (zmień jego nazwę, aby nie została zastąpiona):utwórz nowy skrót za pomocą
ln
komendy (zakładam, że jestem w poprzedniej lokalizacji ~ / anaconda2 / lib):zrestartuj spyder / inny używany interfejs
Powinno teraz działać!
źródło
Rozwiązałem taki problem (ale GLIBCXX_3.4.21) na CentOS, ale nie jest on zależny od systemu operacyjnego. Biblioteka jest częścią kompilatora gcc, dlatego należy zainstalować lub skompilować odpowiednią wersję gcc. To jest tabela wersji gcc i wersji odpowiedniego libstdc ++:
(pełna lista wersji jest tutaj )
Nie zależy to od sposobu instalacji gcc - może być zainstalowany z pakietu lub skompilowany i zainstalowany ze źródeł.
Możliwe, że systemowe biblioteki gcc są dostępne zamiast nowo zainstalowanych. Więc musisz określić zmienną środowiskową, gdzie znaleźć biblioteki, na przykład w wierszu poleceń:
źródło
/usr/lib64/libstdc++.so.6
punkt do nowszej wersji miałem w/usr/local/lib64/libstdc++.so.6
tym poleceniem:ln -fs /usr/local/lib64/libstdc++.so.6 /usr/lib64/libstdc++.so.6
. Stara wersja pozostaje bez linku do niej, jeśli chcesz przywrócić. Trochę hack, ale działa.Przez lata miałem to wiele razy z wieloma różnymi pakietami. Zawsze był rozwiązany przez:
Jeśli twój dist jest aktualizowalny, prawie zawsze obniży nową bibliotekę C ++ i ponownie skonfiguruje takie rzeczy, aby działały ponownie. Problem jest prawie zawsze spowodowany tym, że Twój system nie wskazuje odpowiedniej biblioteki. W moim przypadku zwykle jest to spowodowane wskazywaniem biblioteki na wersję z wieloma kompilatorami.
źródło
before_install:
# To obejście jest wymagane, aby uniknąć błędów libstdc ++ podczas uruchamiania „rozszerzonego” hugo z obsługą SASS.
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
zainstalować:
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
Znalazłem to rozwiązanie tutaj
źródło
źródło
cp
nieln -s
?