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 :

comment inserer un fichier.dll et un fichier.lib dans un executable


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Lycéen
    Inscrit en
    Août 2013
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2013
    Messages : 35
    Par défaut comment inserer un fichier.dll et un fichier.lib dans un executable
    bonjour a tous,
    voila j'ai fait mon petit programme mais a chaque fois que je le lance j'ai besoin de libmysql.dll et mysqlclient.lib .
    je me suis un peu documenté et apparemment si on execute en static library ca marche , donc je le fais et ca me crée un fichier:
    "libmonprogramme.a"
    mais ca ne grossi pas mon executable et il est toujours dependant de libmysql.dll et mysqlclient.lib
    pouvez vous m'aider?

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Normalement tu n'as besoin du .lib/.a que pour l'édition de liens; seul le .dll est nécessaire à l'exécution.

    Ton problème de "version statique", ce n'est pas lié à ton programme, mais à la bibliothèque elle-même: Il faut qu'il existe une version "vraie bibliothèque statique" de la DLL MYSQL pour que celle-ci puisse être intégrée à l'exécutable.

    Tant que tu auras à la place une DLL et une bibliothèque statique d'importation, transformer ton programme lui-même en bibliothèque statique ne changera rien.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre actif
    Homme Profil pro
    Lycéen
    Inscrit en
    Août 2013
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2013
    Messages : 35
    Par défaut re
    Désolé de ne répondre que maintenant ,
    si je comprends bien je dois trouver la dll de la bibliothèque mysql en statique ?
    et une fois que je l'ai je fais comment pour la mettre dans l'exécutable ?

  4. #4
    Futur Membre du Club
    Profil pro
    foobar
    Inscrit en
    Décembre 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : foobar

    Informations forums :
    Inscription : Décembre 2012
    Messages : 3
    Par défaut
    Bonjour,

    Normalement tu devrais avoir dans le dossier de ta bibliothèque 3 dossier : include, lib et bin. Tu trouveras le DLL dans bin, tu dois le copier dans le même répertoire que ton .exe ou bien dans system32 sous Window, la première solution est meilleure. Ensuite ça dépend si tu utilises un IDE ou pas, moi personnellement j'utilise codeblock.

    Project -> Build Options -> Linker Settings -> Add et tu ajoutes mysqlclient.lib qui se trouve normalement dans le dossier lib de ta bibliothèque.

    Ensuite même procédure sauf que tu vas dans Search Directory. Dans l'onglet compiler tu ajoutes le chemin vers le dossier include et dans linker le chemin vers lib. C'est la procédure sous codeblock, je ne sais pas comment on fait sous les autres IDE ou sous gcc.

  5. #5
    Membre Expert
    Profil pro
    Développeur en systèmes embarqués retraité
    Inscrit en
    Mars 2006
    Messages
    952
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2006
    Messages : 952
    Par défaut
    Salut,

    Citation Envoyé par nockas Voir le message
    Tu trouveras le DLL dans bin, tu dois le copier dans le même répertoire que ton .exe ou bien dans system32 sous Window, la première solution est meilleure.
    C'est une question de point de vue. S'il s'agit d'une dll qui évolue et qui est utilisée par de nombreux programmes, il vaut mieux la mettre à l'endroit conseillé par Windows. Imagine que tu aies écrit une dizaine de programmes appelant la même dll et qui tournent tous chez le même client... Il vaut mieux "centraliser" la dll. Le cas typique étant par exemple la SDL. Une exception est le programme totalement obsolète qui ne tourne q'avec une vieille version de la dll. Dans cas, il est justifié de vouloir la "ghettoïser" dans le répertoire de l'appli.

    A+

    Pfeuh

  6. #6
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    System32, c'est le mal. De nos jours, une bibliothèque, elle a droit à son propre sous-répertoire de Program Files ou de Program Files\Common Files.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

Discussions similaires

  1. Réponses: 1
    Dernier message: 16/04/2015, 20h50
  2. Réponses: 8
    Dernier message: 13/05/2011, 11h17
  3. [DLL] Utiliser un fichier dll en java
    Par Bourak dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 24/01/2009, 09h22
  4. Processus, DLL, Enlever un fichier DLL
    Par pier* dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 02/05/2006, 10h58
  5. [Postgres]comment inserer des fichier binaires ?
    Par amin001 dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 24/12/2005, 01h40

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