Napraw błąd „Nie można otworzyć obiektu współdzielonego: Brak takiego pliku lub katalogu”

Napraw błąd „Nie można otworzyć obiektu współdzielonego: Brak takiego pliku lub katalogu”

Błąd „Cannot open shared object no such file or directory” (Nie można otworzyć obiektu współdzielonego, brak takiego pliku lub katalogu) często dotyka deweloperów korzystających z systemu Linux lub podsystemu Windows dla systemu Linux (WSL) w systemie Windows. Ten błąd może utrudniać dodawanie niezbędnych bibliotek do projektu, dlatego konieczne jest jego szybkie rozwiązanie.

Jak naprawić błąd „Nie można otworzyć obiektu współdzielonego, nie ma takiego pliku ani katalogu”

1. Zainstaluj brakującą bibliotekę

  1. Sprawdź komunikat o błędzie. Określi on nazwę brakującej biblioteki.
  2. Zainstaluj bibliotekę, wykonując następujące polecenie: sudo apt-get install your_library_nameinstalacja sudo apt
  3. Poczekaj na zakończenie procesu instalacji.

Niektórzy użytkownicy odnieśli sukces używając polecenia sudo apt install –reinstall w przypadku bibliotek, które są już zainstalowane; warto rozważyć wypróbowanie tego polecenia.

Jeżeli ten błąd wystąpi podczas instalacji Qt, wykonaj następujące polecenie, aby zainstalować jego podstawowe zależności:

sudo apt-get -y install build-essential openssl libssl-dev libssl1.0 libgl1-mesa-dev libqt5x11extras5 '^libxcb.*-dev' libx11-xcb-dev libglu1-mesa-dev libxrender-dev libxi-dev libxkbcommon-dev libxkbcommon-x11-dev

2. Uruchom polecenie ldconfig

  1. Otwórz terminal i wprowadźsudo ldconfig -v
  2. Poczekaj na zakończenie wykonywania polecenia.sudo ldconfig -v
  3. Sprawdź czy błąd nadal występuje.

To polecenie aktualizuje pamięć podręczną bibliotek współdzielonych, co może rozwiązać problem.

3. Sprawdź brakujące zależności za pomocą polecenia ldd

  1. W wierszu poleceń wpisz ldd. /name_of_the_packagepolecenie ldd
  2. Wyświetli się lista modułów używanych przez pakiet.
  3. Zidentyfikuj wszystkie moduły oznaczone jako „nie znaleziono”.
  4. Użyj terminala, aby zainstalować brakujące moduły.

Należy zachować ostrożność, gdyż niektóre aplikacje mogą wymagać architektury 32-bitowej, co wymaga instalacji zgodnych modułów.

4. Użyj polecenia strip

  1. Wykonaj następujące polecenie w terminalu: sudo strip --remove-section=.note.ABI-tag /usr/lib/x86_64-linux-gnu/libQt5Core.so.5sudo pasek
  2. Poczekaj na zakończenie polecenia.
  3. Sprawdź czy problem został rozwiązany.

Należy pamiętać, że to rozwiązanie dotyczy konkretnie biblioteki libQt5Core.so.5, dlatego pamiętaj, aby w kroku 1 dostosować nazwę biblioteki do konkretnego błędu.

5. Ręcznie dodaj bibliotekę do ścieżki bibliotecznej

  1. Znajdź ścieżkę do biblioteki za pomocą polecenia: sudo find / -name the_name_of_the_file.sosudo znajdź
  2. Uruchom następujące polecenie, aby wyświetlić wartość LD_LIBRARY_PATH: echo $LD_LIBRARY_PATHbiblioteka echa
  3. Jeżeli LD_LIBRARY_PATHjest pusty, ustaw go za pomocą: LD_LIBRARY_PATH=/usr/local/libścieżka biblioteki ld
  4. Dodaj ścieżkę biblioteki z kroku 1, wykonując: export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/my_library/eksportuj bibliotekę ld

Błąd „Cannot open shared object no such file or directory” może zakłócić proces rozwoju. Jednak wykonując poniższe kroki w celu zainstalowania wymaganych pakietów, możesz skutecznie rozwiązać ten problem.

Nie jest to jedyny błąd kodowania, na jaki możesz się natknąć; wielu użytkowników zgłaszało również problemy takie jak PermissionError Errno 13 i OSError Errno 48.

Źródło

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *