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

Autres éditeurs Discussion :

Problème de lien avec wsock32.dll sous g++ (mingw32)


Sujet :

Autres éditeurs

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 14
    Points : 10
    Points
    10
    Par défaut Problème de lien avec wsock32.dll sous g++ (mingw32)
    Bonjour à tous,

    Je souhaite créer un fichier .dll et un .lib (pour lier avec visual c++) qui fait appel à wsock32.dll.
    Je compile avec g++ sous mingw32.

    La zone problématique de mon makefile est visible ci-dessous:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    g++ -shared -o ma_nouvelle_dll.dll ma_nouvelle_dll.o des_librairies_maison.dll wsock32.dll
    ...
    Il trouve bien toutes mes dll, mais refuser d'intégrer les fonctions de winsock32.dll. Exemple de message :

    ma_nouvelle_dll.c: undefined reference to 'send@16'

    Je pense que cela vient d'un problème de compatibilité entre dll (vue que mes dll maison fonctionnent bien et les dll windows ne passent pas)

    qqun a-t-il une idée ?

    merci d'avance

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Je ne vois pas trop ce que les .dll (homis le premier) viennent faire dans ta ligne de compilation. Si tu veux lier avec des bibliothèques il faut spécifier leur .a à l'éditeur de liens, pas leur .dll.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 14
    Points : 10
    Points
    10
    Par défaut
    oui effectivement, c'est la première chose que j'avais essayé... dans ce cas, ma ligne de compilation semble fonctionner, une dll est créé mais (il y a toujours un mais), c'est à l'étape suivante du makefile que cela se corse. Pour céer un .lib (je veux un couple .lib et .dll qui fonctionne sous visual c++), j'utilise l'outil micosoft (livré avec visual) lib.exe.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ...
    g++ -shared -o ma_nouvelle_dll.dll ma_nouvelle_dll.o des_librairies_maison.dll libwsock32.a \
    	-Wl,--output-def,ma_nouvelle_dll.def,--out-implib,libma_nouvelle_dll.a
     
    lib /machine:i386 /def:ma_nouvelle_dll.def
    ...
    et là j'obtiens ceci :

    LIB : fatal error LNK1104: impossible d'ouvrir le fichier 'C:\MyInstallations\msys\1.0\def;..\..\ClientServer\lib\mingw32\3.2.3\ma_nouvelle_dll.lib'

    Le fichier ma_nouvelle_dll.def semble correctement créé (mes fonctions sont bien en export et j'ai les fonctions de mes dll en import).

    Je pense que le problème vient du fait que le fichier ma_nouvelle_dll.dll n'a pas été créé correctement.

    qqun a-t-il eu un problème similaire ?

    PS: je précise que je passe par un makefile et mingw32 car je veux qu'un seul makefile intègre la possibilité de compiler sous win (pour visual C++), linux et mac.

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 14
    Points : 10
    Points
    10
    Par défaut
    rectificatif... dans mon .def j'ai bien les fonctions de mes dll maison en inport, mais il semblerait que celles associées à wsock32 ne soient pas prises en compte.

Discussions similaires

  1. Problème de connexion avec rapi.dll : CeRapiInitEx sous Win7
    Par ptichub dans le forum Développement Mobile
    Réponses: 1
    Dernier message: 25/06/2012, 17h43
  2. Problème de liens avec utilisation de dll
    Par baub_ dans le forum Visual C++
    Réponses: 1
    Dernier message: 28/01/2011, 02h18
  3. Réponses: 11
    Dernier message: 20/01/2006, 12h35
  4. Problèmes de liens avec ODBC vars DB Oracle
    Par kmingaso dans le forum ASP
    Réponses: 1
    Dernier message: 05/09/2005, 09h51
  5. problème de liens avec API sous VC++
    Par xavynfive dans le forum MFC
    Réponses: 7
    Dernier message: 26/08/2005, 12h01

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