Utiliser libcurl sur Code::Blocks

Résolu/Fermé
antheor19 Messages postés 12 Date d'inscription mardi 10 octobre 2017 Statut Membre Dernière intervention 21 novembre 2017 - 10 oct. 2017 à 20:40
antheor19 Messages postés 12 Date d'inscription mardi 10 octobre 2017 Statut Membre Dernière intervention 21 novembre 2017 - 15 nov. 2017 à 09:50
Bonjour,
Je développe un programme en c++ qui nécessite l'envoie d'email. Pour cela j'ai choisi d'utiliser la libcurl. Je précise que je suis sous Windows et que je code avec Code::Blocks.
Mais voilà j'implémente le code suivant : https://raw.githubusercontent.com/curl/curl/master/docs/examples/smtp-mail.c
je télécharge sur https://curl.haxx.se/download.html la version curl-7.56.0-win64-mingw.7z, je dézip le tout, je link la lib (dans le Search directories j'ajoute le dossier include du zip, et dans le linker settings j'ajoute les 2 .a contenu dans le répertoire lib du zip), je compile et paf undefined reference to `_imp__curl_easy_init'.
J'en déduis que mon le lien avec la libcurl n'à pas fonctionné pourtant je pense avoir tout bien fait.

Quelqu'un pourrait-il m'aider svp?

2 réponses

[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
11 oct. 2017 à 00:02
Bonsoir antheor19,

Oui, suit ces instructions : https://forums.commentcamarche.net/forum/affich-37594493-codeblocks-installer-une-bibliotheque-librairie qui prennent justement comme exemple libcurl


Dal
0
antheor19 Messages postés 12 Date d'inscription mardi 10 octobre 2017 Statut Membre Dernière intervention 21 novembre 2017 1
11 oct. 2017 à 00:11
Justement c'est ce que j'ai fait. Mais l'erreur persiste. J'ai tenté de faire la manipulation sur un nouveau projet et même problème. Je suis un peu désespéré.
0
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
Modifié le 11 oct. 2017 à 09:31
si tu compiles statiquement, contentes toi de choisir
libcurl.a
dans "Linker settings" (et pas
libcurl.dll.a
), et vérifie que tu n'as pas déplacé les fichiers .a et qu'ils sont toujours à l'endroit indiqué dans ce dialogue.

dans "Compiler settings - Other options", assures toi d'avoir mis
-lcurl
0
antheor19 Messages postés 12 Date d'inscription mardi 10 octobre 2017 Statut Membre Dernière intervention 21 novembre 2017 1
11 oct. 2017 à 18:21
J'ai vérifié l'emplacement de mes fichiers .a et ils sont au même endroit. Je n'avais pas mis de
-lcurl
alors j'ai essayé de le rajouter dans "Compiler settings - Other compiler options" et dans "Compiler settings - Other ressource compiler options", j'ai aussi enlevé
libcurl.dll.a
, mais j'ai toujours le même problème.
Le problème pourrait venir de code::blocks peut être?
0
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
Modifié le 11 oct. 2017 à 19:26
Cela serait étonnant, à moins que tu utilises une version nightly de Code::blocks (quelle est ta version ?).

Je ne peux pas facilement tenter de reproduire ton problème car étant sous Linux depuis que j'ai écris cette entrée de la FAQ, je n'ai pas plus sous la main de machine Windows 64 bits :-(

Peux-tu faire un rebuild complet et poster le contenu complet de la fenêtre "Build log" (pas "Build messages") pour voir la totalité de la commande passée et le résultat ?
0
antheor19 Messages postés 12 Date d'inscription mardi 10 octobre 2017 Statut Membre Dernière intervention 21 novembre 2017 1
11 oct. 2017 à 20:02
J'utilise la version 16.01 de Code::Blocks.
Voilà je t'ai fait un rebuild et je vois un un petit mingw32 le problème ne viendrait pas du fait que je possède une version 32b de Code::Blocks? Parce que si c'est le cas je vais mourir de honte ^^.

-------------- Clean: Debug in myCurl (compiler: GNU GCC Compiler)---------------

Cleaned "myCurl - Debug"

-------------- Build: Debug in myCurl (compiler: GNU GCC Compiler)---------------

mingw32-g++.exe -Wall -fexceptions -lcurl -g -I..\curl-7.56.0-win64-mingw\include -c E:\c++\myCurl\main.cpp -o obj\Debug\main.o
mingw32-g++.exe -o bin\Debug\myCurl.exe obj\Debug\main.o ..\curl-7.56.0-win64-mingw\lib\libcurl.a
obj\Debug\main.o: In function `main':
E:/c++/myCurl/main.cpp:94: undefined reference to `_imp__curl_easy_init'
E:/c++/myCurl/main.cpp:97: undefined reference to `_imp__curl_easy_setopt'
E:/c++/myCurl/main.cpp:106: undefined reference to `_imp__curl_easy_setopt'
E:/c++/myCurl/main.cpp:111: undefined reference to `_imp__curl_slist_append'
E:/c++/myCurl/main.cpp:112: undefined reference to `_imp__curl_slist_append'
E:/c++/myCurl/main.cpp:113: undefined reference to `_imp__curl_easy_setopt'
E:/c++/myCurl/main.cpp:118: undefined reference to `_imp__curl_easy_setopt'
E:/c++/myCurl/main.cpp:119: undefined reference to `_imp__curl_easy_setopt'
E:/c++/myCurl/main.cpp:120: undefined reference to `_imp__curl_easy_setopt'
E:/c++/myCurl/main.cpp:123: undefined reference to `_imp__curl_easy_perform'
E:/c++/myCurl/main.cpp:128: undefined reference to `_imp__curl_easy_strerror'
E:/c++/myCurl/main.cpp:131: undefined reference to `_imp__curl_slist_free_all'
E:/c++/myCurl/main.cpp:141: undefined reference to `_imp__curl_easy_cleanup'
collect2.exe: error: ld returned 1 exit status
Process terminated with status 1 (0 minute(s), 0 second(s))
14 error(s), 0 warning(s) (0 minute(s), 0 second(s))


0
antheor19 Messages postés 12 Date d'inscription mardi 10 octobre 2017 Statut Membre Dernière intervention 21 novembre 2017 1
15 nov. 2017 à 09:50
Merci beaucoup pour toute ton aide tu m'as appris beaucoup de chose. Je vais me lancer dans les requêtes get /post http j'aurais dû y penser plutôt.

Encore un grand merci.

Antheor19
0