Próbuję zainstalować to oprogramowanie o nazwie Skedler. Ich dokumentacja wspomina o zależnościach biblioteki GLIBCXX, ale nie przeszkadzało im to, podając instrukcje instalacji.
GLIBCXX libraries Skedler has dependency on libstdc++ library. Following are the GLIBCXX versions the code depends on libstdc++.so.6 (GLIBCXX_3.4.9) => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 libstdc++.so.6 (GLIBCXX_3.4.15) => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 libstdc++.so.6 (GLIBCXX_3.4) => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 To check the versions on your server. Please run the command CentOS strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX Debian/Ubuntu strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX If the version is not available, update the GCC compiler
Uruchomienie polecenia grep
daje no such file found
w systemie Ubuntu 18.04. Próbowałem także sudo apt-get install libstdc++
i kilku innych poleceń, ale nic nie wydaje się instalować wymaganych bibliotek.
Odpowiedź
Sugerowana nazwa ścieżki do sprawdzenia nie jest dokładna dla współczesnego Debiana / Ubuntu. Polecenie powinno prawdopodobnie wyglądać następująco:
strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX
A ten segment wygląda jak część wyników polecenia ldd
:
libstdc++.so.6 (GLIBCXX_3.4.9) => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 libstdc++.so.6 (GLIBCXX_3.4.15) => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 libstdc++.so.6 (GLIBCXX_3.4) => /usr/lib/x86_64-linux-gnu/libstdc++.so.6
Fakt, że nie ma tekstu not found
po strzałce w którymkolwiek z tych trzech wierszy oznacza, że plik binarny, został przetestowany przez program instalacyjny, znalazł w bibliotece wszystko, czego potrzebował. Wygląda więc na to, że ta zależność jest już obsługiwana przez Twój system.
Nawiasem mówiąc, dane wyjściowe Skedlera wyglądają nieco zagmatwane, jeśli chodzi o nazwę biblioteki. Najbardziej widoczną dla użytkownika nazwą powinna być w rzeczywistości libstdc++
.
W Debianie 9 są obecnie dostępne dwie wersje libstdc++
: aktualna wersja jest spakowana jako libstdc++6
, a starsza wersja, która była popularna w różnych zastrzeżonych programach, jest spakowana jako libstdc++5
. Wydaje mi się, że Ubuntu może mieć dostępne warianty o podobnych nazwach.
Nazwa GLIBCXX
jest prefiksem nazw symboli wersji w bibliotece. Zwykle byłoby to bardziej powiązane z rzeczywistą nazwą biblioteki (bez przedrostka „lib”), ale w tym przypadku znaki plus są problemem, dlatego są zastępowane znakami X.
(Stary libstdc++5
używał innego ABI, który jest niekompatybilny z obecnym, a w jego symbolach wersji używany był przedrostek GLIBCPP
).