[gelöst] c++ curl libcurl libcurlpp installieren und einbinden?



  • Hallo zusammen,

    ich möchte in einer kleinen C++ Anwendung (lib)curl(pp) verwenden, allerdings habe ich noch wenig Ahnung vom Einbinden externer Bibliotheken.

    Was muss ich denn installieren, um mit dem Programmieren starten zu können?

    apt search libcurl ergibt recht viele Ergebnisse, z.B. libcurl3(-ocaml, -dbg, usw.), libcurl4-nss-dev, libcurlpp-dev (klingt am besten).

    xubuntu 16.04 LTS

    Danke,
    temi


  • Mod

    Gibt's da kein einfaches libcurl-dev? Bzw. wenn du Bindings für andere Sprachen außer C möchtest, dann natürlich noch das entsprechende dev-Paket dafür, also das von dir schon gefundene libcurlpp-dev für C++.

    War das eine reine Frage zum Paketmanager von Ubuntu (das gehört dann eigentlich nicht ins Linuxprogrammierforum) oder geht es auch darum, wie du dann später damit programmierst (dann passt es hier her)?



  • SeppJ schrieb:

    Gibt's da kein einfaches libcurl-dev? Bzw. wenn du Bindings für andere Sprachen außer C möchtest, dann natürlich noch das entsprechende dev-Paket dafür, also das von dir schon gefundene libcurlpp-dev für C++.

    War das eine reine Frage zum Paketmanager von Ubuntu (das gehört dann eigentlich nicht ins Linuxprogrammierforum) oder geht es auch darum, wie du dann später damit programmierst (dann passt es hier her)?

    libcurl-dev gibt es nicht.

    Edit: Es gibt allerdings "libcurl4-openssl-dev" Laut der Homepage von curl ist das die letzte prebuild development version für ubuntu (nicht ganz aktuell). Oder man müsste sich eine aktuelle Version selbst bauen => Was würde ich mir damit antun??? Es klingt auf jeden Fall nicht anfängertauglich...

    Nein, keine reine Frage zum Paketmanager. Ich möchte erst mal wissen, was ich wie installieren muss, damit ich ein C++ Programm damit schreiben kann. Falls ich dazu den Quelltext herunterladen und irgendwohin kopieren muss, dann ist mir das auch recht.

    Alles was ich im Internet dazu finde verursacht mir noch mehr Fragezeichen, z.B. libcurl-config, pkg-config 😕

    Meine gesamte Literatur erklärt wie man mit C++ programmiert, aber wenn es dann um die praktischen Fragen, z.B. Einbinden und Verwenden von Bibliotheken geht werden die Infos spärlich.

    Ich würde halt gerne wissen, was ich machen muss, bevor ich im trial-and-error-Verfahren herumdoktore.


  • Mod

    Nein, keine reine Frage zum Paketmanager.

    I

    ch möchte erst mal wissen, was ich wie installieren muss, damit ich ein C++ Programm damit schreiben kann.

    😕 Also doch eine Frage zum Paketmanager.

    Mit dem libcurlpp-dev und dessen Abhängigkeiten liegst du bestimmt richtig.

    Zur Erklärung: Die dev-Pakete enthalten die Teile, die man zur Entwicklung benötigt. Bei Sprachen wie C und C++ heißt das in erster Linie, dass neben der normalen Programmbibliothek auch noch passende Headerdateien beiliegen.

    Das ist aber alles Ubuntu/Debian spezifisch.



  • Solche Fragen gibt es wie Sand am Meer.

    http://askubuntu.com/questions/78183/installing-curl-h-library

    Eine Bibliothek einbinden ist eigentlich kein großes Ding. Die Libs findest du zumeist im /usr/lib oder /usr/local/lib Ordner und enden mit ".a" und ähnlich. Ganz nach dem Prinzip "Datei auswählen -> *klick* -> [x]Datei verlinkt".

    Wenn du den QtCreator benutzt geht das mit einer einzigen Zeile in der .pro-Datei:

    LIBS += -lcurl



  • simsalasimsala schrieb:

    Solche Fragen gibt es wie Sand am Meer.

    http://askubuntu.com/questions/78183/installing-curl-h-library

    Eine Bibliothek einbinden ist eigentlich kein großes Ding. Die Libs findest du zumeist im /usr/lib oder /usr/local/lib Ordner und enden mit ".a" und ähnlich. Ganz nach dem Prinzip "Datei auswählen -> *klick* -> [x]Datei verlinkt".

    Wenn du den QtCreator benutzt geht das mit einer einzigen Zeile in der .pro-Datei:

    LIBS += -lcurl

    Ok - ich habe jetzt libcurl4-openssl-dev installiert. Mit #include <curl/curl.h> kann ich es auch einbinden. Die Headerdateien habe ich in /usr/include/ gefunden, ich nehme an dieses Verzeichnis ist meiner IDE bekannt, so dass das include funktioniert?

    Worum handelt es sich bei .lcurl?

    Eine Datei ist das ja nicht, denn wenn ich in QtCreator "Bibliothek hinzufügen" klicke und in /usr/lib/x86[..]/libcurl.a (oder .so) auswähle, wird in der .prj das oben erwähnte -lcurl eingefügt.

    Danke,
    temi


  • Mod

    -lcurl ist ein typischer Kommandozeilenparameter für Linkereinstellungen, der besagt, dass zum Linken eine Bibliothek namens curl heran gezogen werden soll. Die wird dann nach allerlei Regeln gesucht, die ich hier nicht erklären werde. Letztendlich wird das auf typisch konfigurierten Linuxsystemen bei einer Datei namens /usr/lib/libcurl.so.versionsnummer oder ähnlich landen.



  • Nochmal danke für die Unterstützung. Ich habe jetzt ein Minimalbeispiel mit curl zum Laufen gebracht (das nebenbei genau meine Anforderungen erfüllt).

    SeppJ, du hattest Recht. Es ging doch fast nur um die Installation. Ich hatte mir das etwas komplizierter vorgestellt.

    Gruß,
    temi


Log in to reply