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

MinGW Discussion :

mingw : link avec dll sans .a !


Sujet :

MinGW

  1. #1
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut mingw : link avec dll sans .a !
    Bonjour,
    Suite à un essaie d'ogre3D avec Qt et mingw, j'ai découvert que la version de orgre3D precompilé ne fournie aucun .a et que le link utilise directement les dll de ogre...

    Es ce que quelqu'un aurais une explication???




    ps : pour utiliser la version mingw de ogre3D il faut installer MinGW C++ Toolbox. Es ce que cela peut être lié???

  2. #2
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Ce que je veut dire, c'est la première fois que je fait un link directement avec une dll et non un .a ou .lib....

    Je voulais savoir si c'est une subtilité de mingw ou non.

    Ou alors je ne sais plus linker

  3. #3
    Membre averti
    Homme Profil pro
    Game Graphics Programmer
    Inscrit en
    Août 2006
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Game Graphics Programmer
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 408
    Points : 392
    Points
    392
    Par défaut
    Subtilité unixienne peut-être. J'ai remarqué que OSX (Xcode) créait aussi uniquement des .dylib sans .a pour lier. J'en ai conclut que le lien dynamique implicite était une idée de Microsoft et que sous Unix, il fallait utiliser le chargement dynamique explicite d'une bibliotheque dynamique.

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    MinGW permet plus ou moins de reconstituer les imports à partir de la DLL, mais il y a des inconvénients à ce "raccourci" : http://blogs.msdn.com/oldnewthing/ar...27/679634.aspx

    @Kurisu: Pas du tout de lien implicite sous nux? Ben dis-donc, c'est quand même souvent se compliquer la vie pour pas grand-chose... Bien sûr, on peut faire avec, mais c'est quand même plus simple quand tu as droit à un lien implicite...
    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.

  5. #5
    Membre éclairé
    Avatar de Florian Goo
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    680
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 680
    Points : 858
    Points
    858
    Par défaut
    Si si
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
     
    florian@flobox:~$ ls /usr/lib/libboost*
    /usr/lib/libboost_date_time-mt.a
    /usr/lib/libboost_date_time-mt.so
    /usr/lib/libboost_date_time.a
    /usr/lib/libboost_date_time.so
    /usr/lib/libboost_filesystem-mt.a
    /usr/lib/libboost_filesystem-mt.so
    /usr/lib/libboost_filesystem.a
    /usr/lib/libboost_filesystem.so
    /usr/lib/libboost_graph-mt.a
    /usr/lib/libboost_graph-mt.so
    /usr/lib/libboost_graph.a
    /usr/lib/libboost_graph.so
    /usr/lib/libboost_iostreams-mt.a
    /usr/lib/libboost_iostreams-mt.so
    /usr/lib/libboost_iostreams.a
    /usr/lib/libboost_iostreams.so
    /usr/lib/libboost_math_c99-mt.a
    /usr/lib/libboost_math_c99-mt.so
    /usr/lib/libboost_math_c99.a
    /usr/lib/libboost_math_c99.so
    /usr/lib/libboost_math_c99f-mt.a
    /usr/lib/libboost_math_c99f-mt.so
    /usr/lib/libboost_math_c99f.a
    /usr/lib/libboost_math_c99f.so
    /usr/lib/libboost_math_c99l-mt.a
    /usr/lib/libboost_math_c99l-mt.so
    /usr/lib/libboost_math_c99l.a
    /usr/lib/libboost_math_c99l.so
    /usr/lib/libboost_math_tr1-mt.a
    /usr/lib/libboost_math_tr1-mt.so
    /usr/lib/libboost_math_tr1.a
    /usr/lib/libboost_math_tr1.so
    /usr/lib/libboost_math_tr1f-mt.a
    /usr/lib/libboost_math_tr1f-mt.so
    /usr/lib/libboost_math_tr1f.a
    /usr/lib/libboost_math_tr1f.so
    /usr/lib/libboost_math_tr1l-mt.a
    /usr/lib/libboost_math_tr1l-mt.so
    /usr/lib/libboost_math_tr1l.a
    /usr/lib/libboost_math_tr1l.so
    /usr/lib/libboost_prg_exec_monitor-mt.a
    /usr/lib/libboost_prg_exec_monitor-mt.so
    /usr/lib/libboost_prg_exec_monitor.a
    /usr/lib/libboost_prg_exec_monitor.so
    /usr/lib/libboost_program_options-mt.a
    /usr/lib/libboost_program_options-mt.so
    /usr/lib/libboost_program_options.a
    /usr/lib/libboost_program_options.so
    /usr/lib/libboost_python-mt.a
    /usr/lib/libboost_python-mt.so
    /usr/lib/libboost_python.a
    /usr/lib/libboost_python.so
    /usr/lib/libboost_regex-mt.a
    /usr/lib/libboost_regex-mt.so
    /usr/lib/libboost_regex.a
    /usr/lib/libboost_regex.so
    /usr/lib/libboost_serialization-mt.a
    /usr/lib/libboost_serialization-mt.so
    /usr/lib/libboost_serialization.a
    /usr/lib/libboost_serialization.so
    /usr/lib/libboost_signals-mt.a
    /usr/lib/libboost_signals-mt.so
    /usr/lib/libboost_signals.a
    /usr/lib/libboost_signals.so
    /usr/lib/libboost_system-mt.a
    /usr/lib/libboost_system-mt.so
    /usr/lib/libboost_system.a
    /usr/lib/libboost_system.so
    /usr/lib/libboost_test_exec_monitor-mt.a
    /usr/lib/libboost_test_exec_monitor.a
    /usr/lib/libboost_thread-mt.a
    /usr/lib/libboost_thread-mt.so
    /usr/lib/libboost_unit_test_framework-mt.a
    /usr/lib/libboost_unit_test_framework-mt.so
    /usr/lib/libboost_unit_test_framework.a
    /usr/lib/libboost_unit_test_framework.so
    /usr/lib/libboost_wave-mt.a
    /usr/lib/libboost_wave-mt.so
    /usr/lib/libboost_wave.a
    /usr/lib/libboost_wave.so
    /usr/lib/libboost_wserialization-mt.a
    /usr/lib/libboost_wserialization-mt.so
    /usr/lib/libboost_wserialization.a
    /usr/lib/libboost_wserialization.so
    Cours : Initiation à CMake
    Projet : Scalpel, bibliothèque d'analyse de code source C++ (développement en cours)
    Ce message a été tapé avec un clavier en disposition bépo.

  6. #6
    Membre confirmé Avatar de dapounet
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2007
    Messages
    469
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 469
    Points : 567
    Points
    567
    Par défaut
    Bonjour,

    Qu'est-ce que vous voulez dire par lien dynamique implicite ?
    :wq

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    On veut dire ne pas avoir à faire de LoadLibrary() ou dlopen() explicite dans le code.

    À la place, la DLL est liée par une bibliothèque statique d'importation.
    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. Utilisation de Project avec VB6 sans avoir installer Project sur le PC (DLL?)
    Par bibiGN dans le forum Installation, Déploiement et Sécurité
    Réponses: 3
    Dernier message: 28/05/2009, 13h46
  2. Réponses: 1
    Dernier message: 31/01/2008, 16h55
  3. [VB6]ouvrir une DLL sans en conaitre le nom à la creation
    Par victorracine dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 05/02/2004, 15h16
  4. Problème de link avec Borland C++ 5.5
    Par gelam dans le forum Autres éditeurs
    Réponses: 5
    Dernier message: 24/11/2003, 16h45
  5. pb de link avec direct X 8.1
    Par amaury pouly dans le forum DirectX
    Réponses: 2
    Dernier message: 01/04/2003, 08h04

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