Probleme avec libcurl
Fermé
0cTeT
Messages postés
39
Date d'inscription
samedi 15 juin 2013
Statut
Membre
Dernière intervention
30 mars 2020
-
29 août 2014 à 19:25
mamiemando Messages postés 33410 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 2 décembre 2024 - 1 oct. 2014 à 13:40
mamiemando Messages postés 33410 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 2 décembre 2024 - 1 oct. 2014 à 13:40
1 réponse
mamiemando
Messages postés
33410
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
2 décembre 2024
7 808
Modifié par mamiemando le 1/10/2014 à 13:45
Modifié par mamiemando le 1/10/2014 à 13:45
Le mieux est effectivement d'installer ta librairie via le gestionnaire de paquets apt.
1) Installation
Au choix tu utilises directement des commande apt (genre apt-get) ou tu passes par la logithèque :
http://doc.ubuntu-fr.org/software-center
Note : sous debian et les distributions qui en dérivent, les paquets de librairie permettant de développer sont nommés conformément au motif
Du coup pour l'installer :
2) Où est-ce installé ?
J'ai envie de te dire, aucune importance, c'est dans un répertoire standard et g++ le retrouvera pour toi. Mais si tu es curieux tu peux regarder avec
Tu verras que tu as des headers dans
Note : Comme
3) Comment utiliser la librairie ?
Passons à la librairie. Tu vas vouloir soit linker avec la librairie dynamique (.so, l'équivalent d'une dll) soit avec la librairie statique (.a). La première solution est celle qu'on privilégie en générale, mais suppose que la librairie soit installée sur la machine qui veut lancer le programme. L'intérêt est qu'elle génère ainsi des exécutables moins gros. Pour lier ton programme avec une librairie .so, il suffit d'utiliser l'option
Ici les librairies fournies par ce paquets sont
4) Pour aller plus loin
Idéalement ensuite tu es sensé écrire un Makefile (ce qui t'évitera de taper toutes ces commandes) ou encore mieux (mais c'est plus complexe), utiliser autotools. Pour cela je t'invite à regarder un tutoriel.
Bonne chance
1) Installation
Au choix tu utilises directement des commande apt (genre apt-get) ou tu passes par la logithèque :
http://doc.ubuntu-fr.org/software-center
(mando@velvet) (~) $ apt-cache search libcurl | grep curl | grep dev
...
libcurlpp-dev - c++ wrapper for libcurl (development files)
...
Note : sous debian et les distributions qui en dérivent, les paquets de librairie permettant de développer sont nommés conformément au motif
lib*-dev, d'où les grep ci-dessus.
Du coup pour l'installer :
sudo apt-get update
sudo apt-get install libcurlpp-dev
2) Où est-ce installé ?
J'ai envie de te dire, aucune importance, c'est dans un répertoire standard et g++ le retrouvera pour toi. Mais si tu es curieux tu peux regarder avec
apt-file:
sudo apt-get install apt-file
apt-file update
apt-file list libcurlpp-dev
Tu verras que tu as des headers dans
/usr/include/curlppet
/usr/include/utilspp/, donc dans ton code tu écriras par exemple :
#include <curlpp/Exception.hpp>
#include <utilspp/Singleton.hpp>
Note : Comme
/usr/includeest un répertoire standard, on peut directement utiliser
#include <..>. Il n'est en outre pas utile de passer à
g++l'option
-I /usr/includequi est implicite.
3) Comment utiliser la librairie ?
Passons à la librairie. Tu vas vouloir soit linker avec la librairie dynamique (.so, l'équivalent d'une dll) soit avec la librairie statique (.a). La première solution est celle qu'on privilégie en générale, mais suppose que la librairie soit installée sur la machine qui veut lancer le programme. L'intérêt est qu'elle génère ainsi des exécutables moins gros. Pour lier ton programme avec une librairie .so, il suffit d'utiliser l'option
-lde
g++.
Ici les librairies fournies par ce paquets sont
/usr/lib/x86_64-linux-gnu/libcurlpp.soet
/usr/lib/x86_64-linux-gnu/libutilspp.so. Les librairies sont installées dans un répertoire standard, donc elles seront retrouvées automatiquement par g++ sans avoir à préciser dans quel répertoire les trouver. Par ailleurs sous linux, toutes les librairies dynamiques respectent le motif
lib*.so. Dans l'option
-lon enlève ce préfixe et l'extension, ce qui donnera typiquement :
g++ -Wall -O2 -c module1.c
g++ -Wall -O2 -c module2.c
g++ -Wall -O2 main.c module1.o module2.o -lutilspp -lcurlpp -o mon_executable
4) Pour aller plus loin
Idéalement ensuite tu es sensé écrire un Makefile (ce qui t'évitera de taper toutes ces commandes) ou encore mieux (mais c'est plus complexe), utiliser autotools. Pour cela je t'invite à regarder un tutoriel.
Bonne chance