Installer libcurl sous codeblocks

Fermé
reywas Messages postés 19 Date d'inscription dimanche 29 août 2010 Statut Membre Dernière intervention 1 mars 2013 - 28 janv. 2013 à 18:16
[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 - 29 janv. 2013 à 10:59
Salut !

Ca fait 3h que je galère sur l'installation de libcurl avec codeblocks je sais pas comment faire...

J'ai téléchargé la librairie libcurl (déjà je sais pas laquelle prendre il existe plein de .zip différents et je sais pas lequel choisir) et ensuite je dézippe et je me retrouve avec un dossier libcurl contenant d'autre dossiers (lib, bin etc)

A partir de là, je ne trouve absolument aucun tuto clair disant ce qu'il faut faire de tout cela, quelqu'un peut aider ?

J'ai bien essayé de copier les fichier contenus dans le dossier lib de ma librairie dans le dossier lib de codeblocks et pareil avec les autres dossiers, mais ça n'a pas l'air de fonctionner, je me retrouve avec des erreurs comme quoi il reconnait pas les fonctions.

Ce qui est dommage c'est que le sdz avait l'air de traiter plein de fois ce sujet sur les messages de la V3, mais que plus aucun est en ligne...

Merci d'avance !
A voir également:

4 réponses

[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 1 096
Modifié par [Dal] le 28/01/2013 à 19:03
Salut reywas,

Si ton Codeblocks fonctionne avec le compilateur MinGW et que tu as récupéré un binaire de la bibliothèque que tu veux utiliser, qui est aussi compilé pour MinGW, c'est à dire, dans ton cas, et pour la version actuelle stable de libcurl, ceci :

http://curl.haxx.se/gknw.net/7.28.1/dist-w32/curl-7.28.1-devel-mingw32.zip
(aller voir la version à jour sur https://curl.haxx.se/download.html

Tu fais comme cela :

- décompresse le zip dans un répertoire pas trop compliqué, et avec un nom sans espaces (exemple c:\libs\curl-7.28.1-devel-mingw32\)
- dans codeblocks, il y a 2 choses à faire pour que ton projet puisse utiliser une bibliothèque additionnelle

1.

Indiquer au compilateur où il doit trouver les fichiers .h (pour que les #include ne génèrent pas d'erreur).

Tu fais cela dans : Project - Build options... - Clique sur la racine du projet (pas sur les cibles Debug ou Target, sinon tes paramètres ne s'appliquent qu'à la cible)

Onglet "Search directories" - Add - va chercher le répertoire de la librairie qui contient les .h (dans le cas de libcurl c:\libs\curl-7.28.1-devel-mingw32\include) et sélectionne ce répertoire.

2.

Indiquer à l'éditeur de liaisons où il doit trouver les binaires de la bibliothèque (pour que l'exécutable puisse être généré après compilation), c'est à dire pour l'environnement MinGW, des fichiers dont l'extension est .a

Tu fais cela dans : Project - Build options... - Clique sur la racine du projet (pas sur les cibles Debug ou Target, sinon tes paramètres ne s'appliquent qu'à la cible, sauf si tu utilises des bibliothèques de débogage pour une librairie donnée, là tu distingues)

Onglet "Linker settings" - Add - va chercher le répertoire de la librairie qui contient les .a (dans le cas de libcurl c:\libs\curl-7.28.1-devel-mingw32\lib) et sélectionne les parties de la librairie dont tu as besoin dans le cadre de ton projet.

Si tu ne sais pas, vois la doc de libcurl (ou, au jugé, compile ton projet, vois les messages d'erreur, et ajoute les parties nécessaires, ou, à la brute, ajoute tout :-).

3.

Ensuite, en fonction de la façon dont tu paramètres ton projet (liaison dynamique ou statique), tu peux avoir à copier des .dll dans le répertoire de l'exécutable (ou dans le PATH de Windows) pour que le chargement dynamique de la bibliothèque puisse avoir lieu.

Dans le cas de libcurl, les .dll sont contenus dans c:\libs\curl-7.28.1-devel-mingw32\bin


Cette méthode peut être utilisée avec Codeblocks utilisant MinGW, pour n'importe quelle bibliothèque compilée pour MinGW.


Dal
1
reywas Messages postés 19 Date d'inscription dimanche 29 août 2010 Statut Membre Dernière intervention 1 mars 2013 1
Modifié par reywas le 28/01/2013 à 20:32
Bonjour !

Merci Dal pour toutes ces explications, je n'aurais jamais trouvé cela tout seul, malheureusement j'ai l'impression qu'il reste un problème. :/

Voici clairement tout ce que j'ai fait :
- J'ai désinstallé/réinstallé codeblocks pour tout remettre par défaut.
- J'ai téléchargé libcurl avec le lien http://curl.haxx.se/gknw.net/7.28.1/dist-w32/curl-7.28.1-devel-mingw32.zip que j'ai dézippé et je l'ai placé dans c:\libs\curl-7.28.1-devel-mingw32\
- J'ai créé mon nouveau projet C sous codeblocks et je l'ai enregistré sur mon bureau dont l'adresse est C:\Users\x\Desktop
- J'ai mis un code de test dans mon fichier c : https://curl.se/libcurl/c/simple.html
- J'ai suivi les instruction pour indiquer à l'éditeur de liaisons où il doit trouver les binaires de la bibliothèque. Il me demande "Keep this as a relative path ?" et je réponds oui. (bien que je sache pas ce que ça change)
- De la même façon je suis les instruction pour indiquer à l'éditeur de liaisons où il doit trouver les binaires de la bibliothèque. Il me demande "Keep this as a relative path ?" et je réponds oui. J'ajoute tous les .a pour pas avoir de problème.
- J'essaye de compiler mon programme et ça marque l'erreur :
\Users\x\Desktop\libcurl-7.17.1-win32-ssl\libcurl-7.17.1\lib\libcurl.a||No such file or directory|

Pour la 3eme etape je n'ai pas bien compris dans quel cas fallait que je copie les .dll. En tout cas j'ai essayé sans, et ensuite en copiant les .dll dans le dossier C:\Users\x\Desktop\projet et j'obtiens le même résultat.

Merci d'avance, cordialement,

Reywas
1
reywas Messages postés 19 Date d'inscription dimanche 29 août 2010 Statut Membre Dernière intervention 1 mars 2013 1
28 janv. 2013 à 20:41
Pffff, après quelques tests :
- Désinstaller/Réinstaller codeblocks
- Création d'un nouveau projet hello world

Eh bien je me suis rendu compte que j'avais cette même erreur donc ça vient probablement des essais que j'avais fait j'ai peut-être cassé quelque chose.

Je cherche et poste ici quand j'en sais plus ! :)
0
reywas Messages postés 19 Date d'inscription dimanche 29 août 2010 Statut Membre Dernière intervention 1 mars 2013 1
29 janv. 2013 à 00:14
Après avoir réglé ce que j'avais cassé, ça fonctionne super !

très très grand merci ! :)
0
[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 1 096
Modifié par [Dal] le 29/01/2013 à 09:51
Salut reywas,

Content que cela fonctionne bien désormais. J'ai pas trop compris ce que tu avais "cassé", mais le message d'erreur "\Users\x\Desktop\libcurl-7.17.1-win32-ssl\libcurl-7.17.1\lib\libcurl.a||No such file or directory|" indiquait que l'éditeur de liaisons essayait de trouver libcurl.a dans "\Users\x\Desktop\libcurl-7.17.1-win32-ssl\libcurl-7.17.1\lib\" alors que tu disais l'avoir mis dans "c:\libs\curl-7.28.1-devel-mingw32\".

Le "Keep this as a relative path" signifie que Codeblocks ne va pas conserver le chemin absolu vers la ressource que tu indiques (par exemple "c:\libs\curl-7.28.1-devel-mingw32\lib\libcurl.a)", mais seulement le chemin relatif par rapport au répertoire du projet (dans ton cas, quelque chose comme "..\..\..\libs\curl-7.28.1-devel-mingw32\lib\libcurl.a).

C'est utile de spécifier un chemin relatif si tes ressources sont accessibles sous le répertoire du projet, car ton projet demeurera compilable sur une autre machine avec Codeblocks, les ressources étant au même endroit relativement au répertoire du projet, et ce quelque soit l'emplacement du projet sur la nouvelle machine.

En revanche, si les ressources sont ailleurs (il est mieux de les mettre ailleurs, pour regrouper tes libs à un endroit identifié où tes différents projets pourront les trouver, comme c:\libs), et que tu déplaces ton projet, tu vas casser les références. Dans ce cas, tu devrais spécifier des chemins absolus.


Dal
0
[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 1 096
Modifié par [Dal] le 29/01/2013 à 10:11
Pour les .dll, ils sont à ajouter dans le répertoire où est généré l'exécutable (ou quelque part dans le PATH), et cela est nécessaire uniquement en cas de compilation avec liaison dynamique et pour lancer l'exécutable en dehors de l'environnement de développement.

Si tu ne l'as pas fait, tu t'en aperçois lors de l'exécution (tu double cliques sur le fichier .exe), tu as un message qui va t'avertir du fait que telle ou telle .dll n'a pas été trouvée.


Dal
0
[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 1 096
29 janv. 2013 à 10:59
J'ai créé une fiche pratique du CCM sur cette méthode, car on reçoit régulièrement des questions sur le sujet et je n'en ait pas trouvées sur CCM :

https://forums.commentcamarche.net/forum/affich-37594493-codeblocks-installer-une-bibliotheque-librairie

Si vous voyez des coquilles, ou des propositions d'améliorations, feel free to edit :-)


Dal
0