IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Installation librairie Curl


Sujet :

C++

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 69
    Points : 63
    Points
    63
    Par défaut Installation librairie Curl
    Bonjour à vous ! J'ai commencé le c++ il y a quelques mois et j'essaye maintenant d'utiliser la librairie curl, c'est la première librairie que j'installe et me voilà un peu perdu, je suis sur windows et j'utilise Code Blocks, j'ai donc téléchargé le fichier zip windows sur le site officiel "curl-7.69.1.zip", après avoir regardé un peu partout sur le net j'ai ajouté dans les options de build deux dossier (dans l'onglet Search directories), le dossier include et le dossier lib. En exécutant un code d'essai venant du site officiel je me retrouve avec l'erreur "cannot find -lcurldll" j'ai donc sûrement oublié une étape. Merci à ceux qui sauront m'aider et merci à ceux qui ont pris le temps de lire.

  2. #2
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 69
    Points : 63
    Points
    63
    Par défaut
    Bonjour, après avoir fait quelques essais la situation a changé ! J'ai télécharger la version qui correspondait à mon compilateur, et j'ai ajouté les trois dossier (lib,bin,include) dans l'onglet search directories dans les builds options, ça ne marche toujours pas, maintenant chaque fonction affiche le message "undefined reference to `_imp__curl_global_init". J'ai cru comprendre que peu importe la librairie l'installation était assez similaire, si quelqu'un qui a l'habitude d'en utiliser peut m'aider ce serait super. Merci

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 69
    Points : 63
    Points
    63
    Par défaut
    J'ai trouvé ce tuto : https://alexandre-laurent.developpez...iotheque/#LI-A, je l'ai suivi à la lettre et maintenant l'erreur est : CURL_STATICLIB: No such file or directory, je sais vraiment plus quoi essayer ni de quelle manière procéder.

  4. #4
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 69
    Points : 63
    Points
    63
    Par défaut
    En essayant avec la librarie 32 bits, la compilation se fait mais un autre message d'erreur à l’exécution: "Impossible d’exécuter le code, car libssl-1_1.dll est introuvable. La réinstallation du programme peut corriger ce problème." . libcurl a des dépendances ? Je dois donc joindre libssl aussi ? Merci de m'éclairer.

    EDIT : J'ai téléchargé les dll manquants sur le site: https://fr.dll-files.com/, quelqu'un peut me dire si ce site est fiable ? Je suis pas vraiment à l'aise avec le fait de télécharger un dll trouvé sur un site inconnu, mais comme je galère depuis longtemps je l'ai fait. Ca marche donc maintenant, même si j'ai pas l'impression de pouvoir utiliser les fonctions se servant d'openssl. Ce que j'ai fait marche mais c'est pas très propre c'est pourquoi je laisse le sujet ouvert en espérant que quelqu'un connaisse la façon correct de le faire, peut-être en incluant libssl aussi.

  5. #5
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2011
    Messages
    739
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 739
    Points : 3 627
    Points
    3 627
    Par défaut
    Je ne pense pas qu'ajouter des dossiers de recherche suffise, il faut aussi mettre explicitement les bibliothèques utilisées. La manière de procéder dépend des outils de build utilisés.

    libcurl a des dépendances ? Je dois donc joindre libssl aussi ?
    Oui

  6. #6
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 69
    Points : 63
    Points
    63
    Par défaut
    Merci à toi pour la réponse ! Les deux fichiers manquants étaient libssl et libcrypto, donc si j'ai bien compris je dois appliquer la même démarche que j'ai utilisé pour libcurl pour ces deux librairies ? Désolé si je fais un peu répéter mais comme c'était ma première lib je ne suis vraiment pas sûr de ce que je fais et j'aimerais faire les choses proprement et pas seulement faire en sorte que ça marche. Encore merci

  7. #7
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 860
    Points : 219 062
    Points
    219 062
    Billets dans le blog
    120
    Par défaut
    Citation Envoyé par Talsaj Voir le message
    EDIT : J'ai téléchargé les dll manquants sur le site: https://fr.dll-files.com/, quelqu'un peut me dire si ce site est fiable ? Je suis pas vraiment à l'aise avec le fait de télécharger un dll trouvé sur un site inconnu, mais comme je galère depuis longtemps je l'ai fait. Ca marche donc maintenant, même si j'ai pas l'impression de pouvoir utiliser les fonctions se servant d'openssl. Ce que j'ai fait marche mais c'est pas très propre c'est pourquoi je laisse le sujet ouvert en espérant que quelqu'un connaisse la façon correct de le faire, peut-être en incluant libssl aussi.
    Les DLL doivent être fournies avec libcurl (ou alors généré par la compilation de libcurl). Personnellement, je déteste les dll-files et je n'y apporte aucune confiance.
    Il faut que libssl*.dll soit à côté de votre exécutable. Au pire, il faut la récupérer sur le site officiel, binaire pour Windows.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  8. #8
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 69
    Points : 63
    Points
    63
    Par défaut
    Merci à toi pour la réponse, donc pas besoin de joindre la librairie entièrement mais seulement le *.dll demandé, merci à toi, je vais essayer de les trouver sur les sites officiels, le problème c'est que je les trouve seulement sur des sites de téléchargement de dll. Voici le github officiel de libssl: https://github.com/openssl/openssl et je ne trouve aucun fichier *.dll.

  9. #9
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 860
    Points : 219 062
    Points
    219 062
    Billets dans le blog
    120
    Par défaut
    Possible, il faudra la compiler (mais je me demande si elle ne serait pas compiler en même temps que libcurl )
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  10. #10
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 69
    Points : 63
    Points
    63
    Par défaut
    Étonnant alors, j'ai du faire quelque chose de travers, mais je ne vois pas quoi, j'ai trouvé des *.dll sur : https://wiki.openssl.org/index.php/Binaries si jamais ça peut aider, ça fonctionne bien jusqu'ici, encore merci je passe le sujet en résolu.

  11. #11
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 860
    Points : 219 062
    Points
    219 062
    Billets dans le blog
    120
    Par défaut
    J'ai dit que c'était possible, mais pas obligatoire. Pour les binaires (DLL) je ne les ai pas trouvés sur le site officiel ou sur le GitHub, c'est pour ça .
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  12. #12
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 69
    Points : 63
    Points
    63
    Par défaut
    Le problème c'est que je voulais un exécutable statique, alors qu'actuellement l'exécutable ne peut pas marcher sans des *.dll à côté.

    Nom : linker-settings.JPG
Affichages : 368
Taille : 54,6 Ko

    Nom : searchdirectories-compiler.JPG
Affichages : 365
Taille : 49,1 Ko

    Nom : searchdirectories-linker.JPG
Affichages : 358
Taille : 49,9 Ko

    Voici la configuration et à l'exécution j'ai ce message:

    Nom : errormessage.JPG
Affichages : 363
Taille : 17,1 Ko

    Ca c'est ce qui se passe avec lib 32 bits, avec la 64 et exactement la même configuration le programme ne se compile pas car aucune fonction est reconnue ("curl_easy_init undefined reference"). Je ne sais plus vraiment comment m'y prendre, je vais essayer de me renseigner un peu plus sur le sujet et de faire d'autre essais, merci à vous.

    Les bibliothèques sont téléchargé sur le site officiel: https://curl.haxx.se/windows/, si vous avez besoin d'autre informations pour pouvoir m'aider n'hésitez pas. Mon ordinateur est un 64 bits je dois donc utiliser la version 64 bits ou c'est pas si simple que ça ?

  13. #13
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 860
    Points : 219 062
    Points
    219 062
    Billets dans le blog
    120
    Par défaut
    Mon ordinateur est un 64 bits je dois donc utiliser la version 64 bits ou c'est pas si simple que ça ?
    Il faut que le compilateur supporte le 64 bits. Le MinGW par défaut de Code::Blocks ne l'est pas. Il faut soit un MinGW64, soit autre chose (clang, MSVC...).
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  14. #14
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 69
    Points : 63
    Points
    63
    Par défaut
    Ah d'accord merci, et en 32 bits ça devrait passer ?

  15. #15
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 860
    Points : 219 062
    Points
    219 062
    Billets dans le blog
    120
    Par défaut
    Avoir la bonne architecture permet juste d'enlever les erreurs de l'éditeur de lien ne trouvant pas les symboles. Pour la compilation en statique, il faut se référer à la documentation officielle.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  16. #16
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 69
    Points : 63
    Points
    63
    Par défaut
    J'ai regardé tout les docs et tuto que j'ai pu trouver, à chaque fois ça a l'air très simple, renseigner les fichier *.a, ajouter le dossier include et le dossier lib. Je ne sais vraiment plus quoi faire. Je vais me renseigner sur d'autre librairies.

  17. #17
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 860
    Points : 219 062
    Points
    219 062
    Billets dans le blog
    120
    Par défaut
    Oui, car les tutos se concentrent principalement à une liaison dynamique de la bibliothèque (et non une liaison statique). Une méthode très bourrine, qui je pense, ne marchera pas avec libcurl (car trop grosse), c'est d'intégrer tous les fichiers (.c et .h) de la lib à votre projet. Ensuite, vous oubliez de lier le libcurl.a et le tour pourrait être jouer.
    Pour d'autres bibliothèques, pour que ça marche en statique, il faut ajouter une macro, du style LIBCURL_STATICJe remarque dans la documentation officielle, l'outil curl-config propose une option pour la liaison statique. Avez-vous regardé ?
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  18. #18
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur
    Inscrit en
    Septembre 2015
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2015
    Messages : 36
    Points : 27
    Points
    27
    Par défaut
    Tu ne dois pas utiliser libcurl.a et libcurl.dll.a simultanément, ça n'a aucun sens

    Si tu veux utiliser la version partagée (dynamique) de libcurl: libcurl.dll.a et libcurl.dll
    Si tu veux utiliser la version statique de libcurl: libcurl.a

    De plus pour la version statique, il faut définir CURL_STATICLIB=1 à la compilation

    Au passage, si tu as bien récupéré les binaires à https://curl.haxx.se/windows/, tu n'as pas besoin de lier les dépendances de libcurl dans ton exécutable (car elles sont déjà liées statiquement dans les binaires fournis), ce qui va t'épargner une bonne prise de tête.


    Idéalement il faudrait que tu compiles libcurl toi même avec le même compilo que tu vas utiliser pour ton executable, mais libcurl n'est pas si simple à compiler pour un débutant (il a pas mal de dépendances que tu dois aussi compiler et lier du coup...).

Discussions similaires

  1. Codeblocks - Windows - Librairies CURL/SSL - Installation
    Par Pgs dans le forum Bibliothèques
    Réponses: 2
    Dernier message: 05/09/2016, 11h55
  2. installer librairie opengl
    Par youp_db dans le forum Code::Blocks
    Réponses: 3
    Dernier message: 18/02/2010, 12h42
  3. [QBasic 4.5] Installation librairie advbas
    Par msteffen dans le forum Basic
    Réponses: 2
    Dernier message: 14/04/2007, 15h02
  4. Problème installation librairie SDL
    Par je®ome dans le forum Administration système
    Réponses: 2
    Dernier message: 17/05/2006, 12h23
  5. [install librairie] sous windows -
    Par Mireyu_c dans le forum Déploiement/Installation
    Réponses: 2
    Dernier message: 21/03/2006, 09h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo