저는 Skedler라는이 소프트웨어를 설치하려고합니다. 설명서에 GLIBCXX 라이브러리 종속성이 언급되어 있지만 설치 지침을 제공하는 데는 신경 쓰지 않았습니다.
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
grep
명령을 실행하면 Ubuntu 18.04에서 no such file found
가 제공됩니다. 또한 sudo apt-get install libstdc++
및 기타 여러 명령을 시도했지만 필요한 라이브러리를 설치할 수없는 것 같습니다.
답변
최신 Debian / Ubuntu에서는 확인할 권장 경로 이름이 정확하지 않습니다. 명령은 다음과 같아야합니다.
strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX
이 세그먼트는 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
세 줄의 화살표 뒤에 not found
텍스트가 없다는 사실은 바이너리가 설치 프로그램에 의해 테스트되어 라이브러리 내에서 필요한 모든 것을 성공적으로 찾았습니다. 따라서이 종속성은 이미 시스템에서 처리 한 것 같습니다.
그런데 Skedler 출력은 라이브러리 이름과 관련하여 약간 혼란스러워 보입니다. 사용자에게 가장 잘 보이는 이름은 실제로 libstdc++
여야합니다.
Debian 9에는 현재 사용할 수있는 libstdc++
의 두 가지 버전이 있습니다. 현재 버전은 libstdc++6
로 패키지되어 있습니다. 다양한 독점 소프트웨어에서 널리 사용되던 레거시 버전은 libstdc++5
패키지로 제공됩니다. 우분투에는 비슷한 이름의 변형이있을 수 있습니다.
이름 GLIBCXX
는 라이브러리 내 버전 기호 이름의 접두사입니다. 일반적으로 라이브러리의 실제 이름 ( “lib”접두어 없음)과 더 밀접하게 관련되지만이 경우 더하기 기호가 문제이므로 X 문자로 대체됩니다.
(이전 libstdc++5
는 현재 버전과 호환되지 않는 다른 ABI를 사용했으며 버전 기호는 대신 GLIBCPP
접두사를 사용했습니다.)