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

OpenCV Discussion :

Fichiers .lib et .dll


Sujet :

OpenCV

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    821
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 821
    Par défaut Fichiers .lib et .dll
    Bonjour à tous

    j'ai installé opencv 2.2 comme indiqué sur la doc du site.

    je suis sur Visual Studio

    par contre je ne comprends pas pourquoi il me demande les fichiers .dll alors que je place les .lib pour pouvoir obtenir un unique .exe sans dll externes?

    je ne comprends rien ....

    merci bien à celui/celle qui pourrait m'expliquer

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 186
    Par défaut
    Bonjour,

    par contre je ne comprends pas pourquoi il me demande les fichiers .dll alors que je place les .lib pour pouvoir obtenir un unique .exe sans dll externes

    Les fichiers lib ne contiennent qu'une table des points d'entrée de la DLL. (pas de code exécutable).
    Juste avec les fichiers lib, il ne sera pas possible de se passer des DLL.

  3. #3
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Salut,

    Il faut comprendre que les dll sont des exécutables, ou, du moins, à considérer comme tels ( car elles n'ont "simplement" pas de fonction main qui offre un point d'entrée)

    Le fichier lib correspondant à une dll permet "juste" de définir symboles correspondant aux différentes fonctions accessibles dans la dll, mais il faut impérativement veiller à ce que la dll en question se trouve:
    • soit dans le dossier dans lequel se trouve ton application
    • soit dans un dans lequel le système va rechercher les différents exécutables (en gros, l'un des dossiers de la variable PATH)

    Généralement, sous windows, les dll se trouvent dans le dossier c:\windows\system32 ou c:\windows\sysWOW64 (en fonction de la version 32 ou 64 bits de la dll)
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  4. #4
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Salut

    Citation Envoyé par BlueMonkey Voir le message
    Juste avec les fichiers lib, il ne sera pas possible de se passer des DLL.
    Faut reconnaitre que Visual n'a pas facilité les choses. On peut créer deux types de bibliothèques, les bibliothèques statiques et les bibliothèques dynamiques. Les bibliothèques statiques ne génèrent qu'un fichier .lib que l'on rajoute à l'édition de lien de l'application. Ce fichier contient tout le code nécessaire et il n'y a nul besoin de .dll pour l'exécution de l'application ensuite. Les bibliothèques dynamiques sont constituées généralement d'un fichier .dll et d'un fichier .lib (quoi que ce dernier ne soit pas nécessaire, les symboles étant alors charger explicitement dans l'application). Ici, le .lib n'a pas vocation à contenir le code et l'exécution demande à ce que les DLL puissent être chargées ... et donc trouvées.

    Citation Envoyé par Garra Voir le message
    par contre je ne comprends pas pourquoi il me demande les fichiers .dll alors que je place les .lib pour pouvoir obtenir un unique .exe sans dll externes?
    Pour le debug, tu peux configurer l'option 'Executable Directories' et y ajouter les répertoires contenant les .dll (menu projet/propriétés, onglet VC++ directories) nécessaire. Configurer les répertoires du projet
    Lorsque tu distribues ton application, alors il est effectivement nécessaire de placer les fichiers .dll dans un répertoire que l'application puisse trouver. De mémoire, windows doit fouiller autour de : le répertoire où se trouve le .exe, les répertoires du PATH, les répertoires systèmes. (Il m'en manque peut être).

  5. #5
    Membre Expert
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 186
    Par défaut
    Citation Envoyé par 3DArchi Voir le message
    Salut
    [...] On peut créer deux types de bibliothèques, les bibliothèques statiques et les bibliothèques dynamiques. Les bibliothèques statiques ne génèrent qu'un fichier .lib que l'on rajoute à l'édition de lien de l'application. Ce fichier contient tout le code nécessaire et il n'y a nul besoin de .dll pour l'exécution de l'application ensuite. Les bibliothèques dynamiques sont constituées généralement d'un fichier .dll et d'un fichier .lib
    N'ayant utilisé que peu Visual pour des DLL, je ne connaissais pas cette particularité. Merci pour l'info.
    Pour moi les librairies statiques / dynamiques dépendaient simplement du type de changement de la DLL.
    Mais on avait toujours besoin de la DLL.

    Ensuite dans de rare cas on pouvait bien avoir un .lib associé à un .obj permettant d'intégrer la "bibliothèque" dans l'exe.
    Mais ça restait anecdotique.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    821
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 821
    Par défaut
    merci à tous car ça m'aide à comprendre!!!!

Discussions similaires

  1. Réponses: 5
    Dernier message: 10/09/2013, 14h04
  2. creer un fichier lib à partir d'une DLL
    Par benoit70 dans le forum MFC
    Réponses: 12
    Dernier message: 28/09/2008, 22h58
  3. Génération DLL avec 2 fichiers .lib
    Par JeanPhi dans le forum MFC
    Réponses: 7
    Dernier message: 27/08/2007, 12h02
  4. [DLL] il ne me créé pas le fichier .lib
    Par Ruffi dans le forum MFC
    Réponses: 4
    Dernier message: 23/11/2005, 14h48
  5. [Pascal UCSD] Fichier .lib associé à une DLL
    Par nikhil dans le forum EDI
    Réponses: 3
    Dernier message: 25/07/2005, 16h02

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