/ / Dlaczego wciąż narzeka na libcurl.so.4? - c ++, ubuntu, gcc, cmake

Dlaczego wciąż narzeka na libcurl.so.4? - c ++, ubuntu, gcc, cmake

Używam curl z / usr / bin / curl do/ usr / local / bin / curl. Kiedy uruchamiam z wiersza poleceń, "brak informacji o wersji" już nie istnieje, ale kiedy kompiluję go w środowisku domowym, wciąż narzeka na to: cmake: ~ / local / lib / libcurl.so.4: brak informacji o wersji (wymagane przez cmake) / bin / bash: linia 14: 63003 Błąd segmentacji.

Kiedy patrzę na wersję lokalną: ./ curl --version curl 7.27.0-DEV (x86_64-unknown-linux-gnu) libcurl / 7.27.0-DEV OpenSSL / 1.0.1f zlib / 1.2.8 libssh2 / 1.4.0_DEV Protokoły: plik dict ftp ftps gopher http https imap imaps pop3 pop3s rtsp scp sftp smtp smtps telnet tftp Funkcje: IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP

Został zainstalowany przez apt-get libcurl4-openssl-dev, nie mógł go usunąć.

Jak zainstalować go w local / bin i local / lib?

Dzięki

Odpowiedzi:

0 dla odpowiedzi № 1

Masz bibliotekę skompilowaną bez symboli wersji.

Biblioteka ma symbole wersji dla bardzo ważnych celów: zapewnienie biblioteki jest na tyle nowoczesne, że spełnia wymagania programu. Jeśli cmake skarży się na bibliotekę, oznacza to, że:

  1. Skompilowałeś to bez symboli wersji (prawdopodobnie)
  2. Skompilowałeś zbyt starą wersję

0 dla odpowiedzi nr 2

Myślę, że problem dotyczy nazwy "libcurl.so.4. Miałem podobny problem w Linux Mint 18 (baza - Ubuntu 16.04), 64-bitowy, instalując nowy plik .deb dla oprogramowania wcześniej dostępnego tylko dla Windoze. Instalacja była bezbłędna, ale kiedy próbowałem uruchomić program, nie powiodło się komunikat "błąd podczas ładowania bibliotek współdzielonych: libcurl.so.4: nie można otworzyć pliku obiektu współdzielonego: Brak takiego pliku lub katalogu".

Dostawca doradził mi zainstalować "curl", ale tojuż tam był. W pełni odinstalowałem go, a następnie ponownie zainstalowałem bez żadnych zmian. Następnie wykonałem skanowanie dla "libcurl.so.4" na moim dysku twardym bez rezultatu. Najbliższe mogłem znaleźć w "/ usr / lib / x86_64-linux-gnu /". Pliki miały postać "libcurl-gnutls.so.3", "libcurl-gnutls.so.4" i "libcurl-gnutls.so.4.4.0". Dwie pierwsze są dowiązaniami symbolicznymi do trzeciej. Dodałem kolejne symboliczne łącze do "libcurl-gnutls.so.4.4.0" o nazwie "libcurl.so.4", co pozwoliło mi bez problemu uruchomić nową wersję.