2016-06-17 5 views
0

I Die Locke von/usr/bin/curl nach/usr/local/bin/curl. Wenn ich von der Befehlszeile aus laufe, ist die "no version information available" weg, aber wenn ich es in Home-Umgebung kompiliere, beschwert es sich immer noch: cmake: ~/local/lib/libcurl.so.4: keine Version Informationen verfügbar (erforderlich von cmake)/bin/bash: Zeile 14: 63003 Segmentierungsfehler.Warum klagt es immer noch über libcurl.so.4?

Wenn ich mir die lokale Version: ./curl --Version curl 7.27.0-DEV (x86_64-unknown-linux-gnu) Libcurl/7.27.0-DEV OpenSSL/1.0.1f zlib/1.2 0,8 libssh2/1.4.0_DEV Protokolle: dict Datei ftp ftps gopher http https imap imaps pop3 POP3S rTSP scp sFTP smtp SMTPS telnet tftp Features: IPv6 largefile NTLM NTLM_WB SSL libz TLS-SRP

Es via apt- installiert wurde Get libcurl4-openssl-dev, konnte es nicht entfernen.

Wie installiere ich es in local/bin und local/lib?

Dank

+0

was fragen Sie? könntest du ein paar deiner cmake linking lib curls posten? '~/local/...' führt mich zu glauben, dass es nicht an der richtigen Stelle für Libcurl – kirinthos

+0

Ich habe eine Locke in/usr/bin/curl, ich verknüpfte es mit meinem lokalen Curl, es ist in Ordnung auf der Kommandozeile, aber nicht Bibliotheken zu kompilieren, wie curl finden libcurl.so? Ich habe es auf local/lib gesehen, die Version ist curl 7.27.0-DEV (x86_64-unbekannt-linux-gnu) libcurl/7.27.0-DEV OpenSSL/1.0.1f zlib/1.2.8 libssh2/1.4.0_DEV @ kirinthos –

+0

die binäre höchst wahrscheinlich statisch verbunden ist es Bibliothek, verwenden Sie Linux? vielleicht Ubuntu? probiere [installiere die curl-dev-Pakete] (http://askubuntu.com/questions/78183/installing-curl-h-library) für deine Distribution. Wenn Sie colling selbst kompilieren, beziehen Sie sich auf die Antwort unter – kirinthos

Antwort

0

Sie haben eine Bibliothek ohne Version Symbole zusammengestellt.

Die Bibliothek verfügt über Versionssymbole für sehr wichtige Zwecke: Die Erstellung der Bibliothek ist modern genug, um den Anforderungen des Programms zu entsprechen. Wenn Cmake über die Bibliothek beschwert, bedeutet dies, dass:

  1. Sie es Symbole ohne Version kompiliert haben (wahrscheinlich)
  2. Sie zu alte Version kompiliert
+0

Danke, wie man Versionssymbole hinzufügt und warum cmake libcurl will, da ich kompiliere, um ein Projekt zu erstellen, das viele Bibliotheken hat. –

+0

Ich weiß es nicht. Verwenden Sie Linker-Skripte oder .Symme Assembly Pseudo-Op –

+0

Wenn ich Folgendes mache: dbkg -s curl: Version: 7.35.0-1ubuntu2.5 Hängt ab: libc6 (> = 2.17), libcurl3 (= 7.35.0-1ubuntu2.5) , zlib1g (> = 1: 1.1.4), dann habe ich es entfernt, habe immer noch den gleichen Kompilierfehler, warum die lokale lib curl's Version ist: curl 7.27.0-DEV (x86_64-unbekannt-linux-gnu) libcurl/7.27 .0-DEV OpenSSL/1.0.1f zlib/1.2.8 libssh2/1.4.0_DEV –

0

denke ich, das Problem mit dem Namen ist "libcurl.so.4". Ich hatte ein ähnliches Problem auf Linux Mint 18 (Basis - Ubuntu 16.04), 64 Bit, Installation einer neuen .deb-Datei für Software, die bisher nur für Windoze verfügbar war. Die Installation war fehlerlos, aber als ich versuchte, das Programm auszuführen, fehlgeschlagen mit der Meldung "Fehler beim Laden freigegebener Bibliotheken: libcurl.so.4: kann nicht freigegebene Objektdatei: Keine solche Datei oder Verzeichnis".

Der Lieferant riet mir, "curl" zu installieren, aber es war schon da. Ich habe es vollständig deinstalliert und dann ohne Änderungen neu installiert. Ich habe dann einen Scan für "libcurl.so.4" auf meiner Festplatte ohne Ergebnis durchgeführt. Der nächste, den ich dafür finden konnte, war "/ usr/lib/x86_64-linux-gnu /". Die Dateien waren "libcurl-gnutls.so.3", "libcurl-gnutls.so.4" und "libcurl-gnutls.so.4.4.0". Die ersten beiden sind Symlinks zu der dritten. Ich fügte dann einen weiteren Symlink zu "libcurl-gnutls.so.4.4.0" hinzu, der "libcurl.so.4" genannt wurde, und dies erlaubte mir, die neue Version ohne Probleme auszuführen.