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

Bibliothèques C++ Discussion :

Dépendance DLL - libcurl.dll


Sujet :

Bibliothèques C++

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 17
    Points : 12
    Points
    12
    Par défaut Dépendance DLL - libcurl.dll
    Bonjour, je suis débutant, et j'ai créé une application qui utilise la libraire CURL sous vc++, et j'aimerais compiler mon programme sans qu'il soit dépendant de la dll 'libcurl.dll', comment puis-je faire ?

    J'ai cru comprendre que pour cela il fallait que je lie la librairie au projet j'ai donc rajouté dans mon code :

    #pragma comment(lib, "libcurl.lib");

    Mais lorsque je lance le programme sur un autre ordinateur que le mien, windows me demande encore la dll 'libcurl.dll'.

    Merci d'avance pour vos réponses
    Olphebus.

  2. #2
    Membre à l'essai
    Développeur informatique
    Inscrit en
    Février 2009
    Messages
    15
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2009
    Messages : 15
    Points : 15
    Points
    15
    Par défaut
    Pour faire ca, il faut que tu modifies les options du projet dans vc++ de maniere a faire une compilation avec les librairies en mode static et non dynamique. (n'utilisant pas vc++ je ne pourrais pas te dire exactement ou c'est... desole).

  3. #3
    Membre chevronné
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Points : 2 107
    Points
    2 107
    Par défaut
    soit tu compiles en static, soit tu fournies la DLL avec ton exécutable (à côté).
    No problemo !

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 17
    Points : 12
    Points
    12
    Par défaut
    merci pour vos réponses !
    Mais comment faire pour compiler en static dans VC++ 2005 ?

    j'ai mis l'option "Bibliothèque Runtime" en "Multithread (/MT)"
    j'ai mis "Utilisation des ATL" en" Lien statique vers ATL"
    j'ai mis "Utilsation des MFC" en "Utiliser les MFC dans une bibliothèque statique"


    mais ca ne marche pas, faut il mettre quelque chose de plus ?

  5. #5
    Membre chevronné
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Points : 2 107
    Points
    2 107
    Par défaut
    T'embêtes pas. Compile en DLL et fourni la libcurl.dll avec!

  6. #6
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    Une bibliothèque externe (parlons de libcurl par exemple) possède potentiellement 2 build différents
    • Le 1er, c'est du statique. La bibliothèque est fournie avec un .h (déclaration des fonctions constantes et autres, c'est pour le compilateur. La bibliothèque est aussi fournie avec un .lib (implémentation du code). Ce .lib est utiliser par le linker pour ajouter de manière statique le code de la bibliothèque dans ton programme.
    • La 2eme, c'est du dynamique. La bibliothèque est encore fournie avec un .h (déclaration des fonctions, constantes et autres, c'est pour le compilateur. La bibliothèque est fournie avec une .dll. Cette dll contient le le code de la bibliothèque et sera chargée dynamiquement lors de l'exécution. Afin d'aider le linker, cette bibliothèque est aussi livrée avec un .lib qui permet d'indiquer les fonctions à appeler dans la DLL.

    En général, le .lib d'une bibliothèque dynamique est nettement plus petit que le .lib d'une bibliothèque statique (c'est normal, il n'y a pas le code)

    Toutes les bibliothèques ne possèdent pas forcemment les 2 build, certaines ne sont que statiques, d'autre que dynamiques et enfin certaines sont les 2, c'est un choix du développeur de la bibliothèque.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 17
    Points : 12
    Points
    12
    Par défaut
    Merci à tous pour vos réponse, et pour ces explications sur les bibliothèques !
    je vais mettre la dll à coté du programme.

Discussions similaires

  1. Réponses: 5
    Dernier message: 04/05/2009, 14h54
  2. [WD12] API curl et libcurl.dll
    Par zimonn10 dans le forum WinDev
    Réponses: 8
    Dernier message: 27/04/2009, 11h37
  3. Comment importer toutes les dépendances d'une DLL?
    Par Jayceblaster dans le forum Framework .NET
    Réponses: 1
    Dernier message: 13/02/2008, 13h09
  4. Comment avoir les dépendance d'une DLL
    Par wrida dans le forum C#
    Réponses: 4
    Dernier message: 23/05/2007, 14h18
  5. LoadLibrary de libcurl.dll
    Par fidififouille dans le forum Windows
    Réponses: 3
    Dernier message: 02/11/2004, 11h30

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