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

Linux Discussion :

Dll sous Linux et Windows


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 4
    Par défaut Dll sous Linux et Windows
    Bonjour
    voilà, j'arrive à réaliser des dlls sous windows à l'aide de visual studio.J'arrive également à faire un programme qui appelle cette dll.Mais cependant, j'aimerais savoir si c'est possible de créer une dll sous linux à l'aide de mingw qui fonctionne avec mon programme de test.

  2. #2
    Membre Expert Avatar de jeanbi
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 703
    Par défaut
    bonjour,
    dll sous linux ? ça n'existe pas .
    a+

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Août 2008
    Messages
    505
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Août 2008
    Messages : 505
    Par défaut
    Une dll sous linux, c'est les librairies dont le nom se termine pas so.x.y (x et y sont des nombres).
    C'est proche conceptuellement (en fait, je ne vois pas la différence, mais je me ménage, au cas où une brute de chez brute vienne me démontrer le contraire ).

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    tu as raison..

    DLL = Dynamically Linked Library

    Sous unixoides, ce sont des bibliothèques .so

  5. #5
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Par défaut
    Citation Envoyé par thierry.chich Voir le message
    (en fait, je ne vois pas la différence, mais je me ménage, au cas où une brute de chez brute vienne me démontrer le contraire ).
    Une différence :
    Il y a en normalement une visibilité des fonctions (que l'on peut exporter) dans les DLL alors que pour les .so, on peut charger n'importe quoi.

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par millie Voir le message
    Une différence :
    Il y a en normalement une visibilité des fonctions (que l'on peut exporter) dans les DLL alors que pour les .so, on peut charger n'importe quoi.
    bah je suppose que dans une .so tu peux bien délcarer des fonctions statiques, non ??

    Le fichier d'entête liste les fonctions publiques, au même titre que export..

    Me trompe-je ?

  7. #7
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Par défaut
    Citation Envoyé par souviron34 Voir le message
    bah je suppose que dans une .so tu peux bien délcarer des fonctions statiques, non ??

    Le fichier d'entête liste les fonctions publiques, au même titre que export..

    Me trompe-je ?
    En fait, d'après mes souvenirs, quand on lance un programme lié "statiquement" à une dll, le système vérifie bien que la dll qu'il trouve sur le système a bien les mêmes fonctions publiques exportées (qu'au moment où le programme a été lié).
    Il me semble qu'il n'y avait pas cette vérification avec les .so (c'est pour ça que j'ai dit qu'on pouvait se retrouver à charger n'importe quoi)

    Par contre, que ce soit avec LoadLibrary sous Windows ou dlopen sous UNIX, on peut charger dynamiquement des fonctions même non exportées.

    EDIT : Donc je parlais d'une visibilité au moment de l'exécution pas de la compilation.


    EDIT2 :
    Pour être plus clair, on suppose qu'il existe 1 DLL avec 2 versions (DLL1 et DLL2) :
    - DLL1 : fonction A et fonction B "publique"
    - DLL2 : fonction A publique, la fonction B ne l'est plus car déprécié mais est toujours utilisé en interne

    Un programme est compilé avec DLL1.
    Lors de l'exécution, c'est DLL2 qui est chargé
    -> sous Windows, le programme refuse de s'exécuter car la fonction B n'est plus présente dans les fonctions exportées
    -> sous UNIX, il me semble qu'il n'y a pas de soucis

Discussions similaires

  1. [Free Pascal] GLScene : est-ce possible (sous Linux ET Windows) ?
    Par I_am_root dans le forum Free Pascal
    Réponses: 3
    Dernier message: 10/12/2007, 14h33
  2. Création d'installeur sous Linux et Windows
    Par knarf87 dans le forum Linux
    Réponses: 3
    Dernier message: 09/05/2007, 11h05
  3. Serveur mysql sous linux ou Windows?
    Par gnaoui_9999 dans le forum Installation
    Réponses: 5
    Dernier message: 11/10/2006, 13h28
  4. Ethernet sous Linux et Windows
    Par Invité4 dans le forum Réseau
    Réponses: 9
    Dernier message: 17/04/2005, 11h19
  5. Etat de la pile sous Linux et Windows
    Par Bibouda dans le forum x86 32-bits / 64-bits
    Réponses: 7
    Dernier message: 16/02/2003, 01h28

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