Vous pouvez essayer d'utiliser curl-config --libs
.
Vos inclusions de fichiers d'en-tête sont très bien ; votre problème se produit à l'étape de liaison. Afin d'établir un lien avec libcurl, vous devez ajouter le -lcurl
option de ligne de commande, en supposant qu'elle est installée dans un répertoire standard :
g++ -o sms ./src/sms.o -lcurl
S'il n'est pas installé dans un répertoire standard, vous devez également ajouter le -L/path/to/libcurl
, par exemple. quelque chose comme :
# Assuming that /home/geekman/workspace/libcurl is where libcurl.a is located
g++ -o sms ./src/sms.o -L/home/geekman/workspace/libcurl -lcurl
Notez également que le -lcurl
l'option doit apparaître après la liste des fichiers objet que vous liez, sinon il ne sera pas lié correctement.
Quiconque utilise ecplise CDT, vous devez faire ce qui suit. Entrez d'abord sur le terminal
curl-config --libs
Sur ma machine, le résultat est
-L/usr/lib/i386-linux-gnu -lcurl
puis faites selon cette capture d'écran et vous pourrez compiler. btw n'oubliez pas d'ajouter des fichiers d'en-tête dans votre code
Vous entrez donc le chemin du dossier de la bibliothèque sans -L et le nom de la bibliothèque sans -l car ils seront automatiquement ajoutés par l'éditeur de liens.
Une réponse alternative (la première est excellente). Envisagez d'utiliser la sortie renvoyée par "pkg-config --libs libcurl" comme argument pour votre compilateur.
Par exemple,
CPPFLAGS=`pkg-config --libs libcurl`
g++ $CPPFLAGS monfichier.o
Pkg-config est un moyen standard pour les bibliothèques open source de vous communiquer comment créer un lien avec elles/#include leurs fichiers.