Curl / Curlpp wie installieren?
-
Ich möchte mit Klasse cURLpp programmieren. (In C++). Als IDE verwende ich Code::Blocks.
Was muss ich herunterladen?
Wie geschieht die Installation?
Brauch ich Curl?Vielen Dank für Hilfe
-
[MOP] schrieb:
Was muss ich herunterladen?
[MOP] schrieb:
Wie geschieht die Installation?
Rasch, zuverlässig und einfach. Aber ich denke, dass du das nicht gemeint hast.
[MOP] schrieb:
Brauch ich Curl?
Hmmm, ich schätze nicht oder doch? Im Ernst, was soll die Frage ?
[MOP] schrieb:
Vielen Dank für Hilfe
Hoffe konnte helfen.
-
Sunny31 schrieb:
[MOP] schrieb:
Brauch ich Curl?
Hmmm, ich schätze nicht oder doch? Im Ernst, was soll die Frage ?
Ich meinte, ob ich cURL für cURLPP brauche
Ok, also ich hab jetzt die curlib installiert. Wenn ich jetzt cURLpp installieren möchte muss ich folgendes machen:
1. ./configure Funktioniert ohne Probleme
2. ./make install hier kommt bei mir der Fehler:LifetimeWithLongevity.inl:19: error: 'upper_bound' is not a member of 'std'
LifetimeLibrary.cpp: In member function 'void utilspp::LifetimeLibraryImpl::add(utilspp::PrivateMembers::LifetimeTracker*)':
LifetimeLibrary.cpp:29: error: 'upper_bound' is not a member of 'std'
make[2]: *** [LifetimeLibrary.lo] Fehler 1Wie behebe ich das?
mfg [mop]
PS: Ich benutze Ubuntu
-
So hab dieses Problem selbst beheben können (Einfach die neueste Version nehmen)...
Hab jetzt alles compiled mit Erfolg!
Aber wie benutze ich die Lib jetzt?
Dieser Beispielcode funktioniert immer noch nicht#include <curlpp/curlpp.hpp> #include <curlpp/Easy.hpp> #include <curlpp/Options.hpp> using namespace curlpp::options; int main(int, char **) { try { // That's all that is needed to do cleanup of used resources (RAII style). curlpp::Cleanup myCleanup; // Our request to be sent. curlpp::Easy myRequest; // Set the URL. myRequest.setOpt<Url>("http://example.com"); // Send request and get a result. // By default the result goes to standard output. myRequest.perform(); } catch(curlpp::RuntimeError & e) { std::cout << e.what() << std::endl; } catch(curlpp::LogicError & e) { std::cout << e.what() << std::endl; } return 0; }
Fehlermeldung:
example01.cpp|35|error: curlpp/cURLpp.hpp: No such file or directory|
Muss ich das compilte irgendwo hineinkopieren oder was muss ich machen damit er diese Lib oder wie auch immer man das nennt, findet?
Bin noch ein Linux Neuling
-
Warum hast Du das Zeug denn überhaupt manuell installiert? Das gibts doch auch per apt, mach einfach
sudo aptitude install libcurl4-openssl-dev
oder so und alles funktioniert.Zeig doch bitte mal Deinen Compiler-Aufruf, ich schätze, Du hast keinen pkg-config-Aufruf. Der Compiler-Aufruf sollte so oder ähnlich aussehen:
g++ -o foo $(pkg-config --libs --cflags libcurl) foo.cpp
-
Hab deinen aptitude Befehl ausgeführt, es ändert sich aber nichts
examples$ g++ -o example01 $(pkg-config --libs --cflags libcurl) example01.cpp
Bringt auch keine veränderung
Hat noch jemand eine Idee?Vielen Danke
[MOP]
-
Dein Problem ist ja nicht die libcurl sondern curlpp. Such nach entsprechender Doku dazu, wie Du die Anwendungen kompilierst, irgendwie musst Du den Include-Pfad übergeben. Keine Ahnung, ob die pkg-config verwenden, oder nicht.
-
Schade, aber trotzdem danke! Wenn jemand noch ne Idee hat bitte melden
Edit:
Kann ich nicht einfach die include dateien irgendwie in das Compilerverzeichniß kopieren, sodass er es dann findet? Zum Beispiel <iostream> ist doch auch eine Datei im Compilerverzeichniß oder ist das falsch?
-
Grml, lies doch bitte die Doku, ich hab Dir doch gesagt, woran es scheitert.
[MOP] schrieb:
Kann ich nicht einfach die include dateien irgendwie in das Compilerverzeichniß kopieren, sodass er es dann findet? Zum Beispiel <iostream> ist doch auch eine Datei im Compilerverzeichniß oder ist das falsch?
Nein, das macht man nicht. Dem Compiler kannst Du zusätzliche Verzeichnisse mit der -I-Option geben. Also zB.
g++ -o foo -I/pfad/zu/meiner/exotischen/library foo.cpp
Aber häufig verwendet man für Libraries pkg-config oä, welches diese Parameter dann ausspuckt, ohne dass Du Dich um die Details kümmern musst. Schau mal auf der curlpp-Seite, wie sich das Teil verwendet.
-
Ok, hab mir alles nochmal durchgelesen und diese Anleitung befolgt: http://jackvalmadre.wordpress.com/2009/11/20/setting-up-curlpp-in-ubuntu
Wenn ich jetzt mit diesem Befehl:g++ -c example03.cpp `pkg-config --cflags curlpp` -DHAVE_CONFIG_H
...compile funktioniert alles
Aber ich arbeite ja mit Code::Blocks und wenn ich da unter Build options pkg-config --cflags curlpp -DHAVE_CONFIG_H einfüge kommt unter anderem der Fehler
‘curlpp’ has not been declared
oder
`cout´ was not declared at this scope
Wie behebe ich nun dieses Problem?
-
[MOP] schrieb:
`cout´ was not declared at this scope
Willst du dich nicht lieber mit den Grundlagen auseinandersetzen bevor du dich an etwas höherem wagst?
cout kommt aus dem std-Namespace, sprich: std::cout.
-
Sunny31 schrieb:
[MOP] schrieb:
`cout´ was not declared at this scope
Willst du dich nicht lieber mit den Grundlagen auseinandersetzen bevor du dich an etwas höherem wagst?
cout kommt aus dem std-Namespace, sprich: std::cout.
Ich kann die Grundlagen schon, aber das hab ich jetzt vergessen
Was ist mit den anderen Fehlern?
-
Die Backticks haben eine ganz bestimmte Bedeutung, das heißt soviel wie "Hier die Ausgabe des Befehls einsetzen". Schreib mal in die Optionen Deiner IDE
$(pkg-config bla blubb sonstige optionen)
rein.
-
wenn ich es so mache:
(pkg-config --cflags curlpp)
dann compilt er fehlerfrei, aber das Programm, wenn man es öffnet, schließt sich gleich wieder ohne irgendeine Ausgabe, egal bei welchem quellcode
es ist zum Verzweifeln
-
Würd mich weiterhin über Ideen oder Überlegungen freuen
Also hab jetzt viel recherchiert und steh immer noch da wo ich hier aufgehört hab, also bei dem curlpp has not been declared Fehler!
Die lib ist wie gesagt compiled, fehlerfrei! Außerdem hab ich unter /usr/local/lib/pkgconfig/ die datei curlpp.pc gefunden, sagt das jemand was oder kann ich damit was machen? Kenn mich überhaupt nicht mit pkgconfig aus
Was ich eigentlich machen will: Ich schreibe ein Programm das Webseiten downloaden soll und daraus gewisse Informationen herausfiltert... Wie würdet ihr das Webseiten downloaden realisieren? Auch mit cURLpp oder kennt ihr noch andere (leicht zu benutzende)?
Vielen Dank für Tipps und Hilfen:xmas1: :xmas1:
[MOP]