Problème de link environnement Windows
Répondre à la discussion
Affichage des résultats 1 à 9 sur 9

Problème de link environnement Windows



  1. #1
    Dlzlogic

    Problème de link environnement Windows


    ------

    Bonjour,
    Je cherche à lier la librairie libcurl à mon programme.
    Je pense avoir chargé et presque lu tout ce qu'il faut, il y a les #include nécessaires, des dll, mais aucun .lib.
    J'ai renommé libcurl.a en libcurl.lib. Il reste une erreur :
    [Lieur Erreur] 'G:\BC++B6\...\LIBCURL.LIB' contains invalid OMF record, type 0x21 (possibly COFF)
    L'aide borland me conseille d'essayer "bin\COFF2OMF.exe", le résultat est
    Code:
    ERROR: COFF error: <le fichier> (coffread.cpp, 1313) : index into non-existant long names table
    Là, je suis complètement largué.
    Merci d'avance si vous avez une idée.

    -----

  2. #2
    Jack
    Modérateur

    Re : Problème de link environnement Windows

    Je ne sais pas si ça va t'aider mais, ne connaissant pas exactement ton environnement de développement, cette install sous visual studio doit pouvoir être transposée sous du Borland:
    http://curl.haxx.se/libcurl/c/visual_studio.pdf

    A+

  3. #3
    Dlzlogic

    Re : Problème de link environnement Windows

    Merci, cette doc est claire et bien faite.
    Très nettement, la première opération consiste à créer cette librairie, ce qui parait étonnant dans l'esprit "librairie + dll" Mais il est possible que ce soit une opération nécessaire pour être utilisée sur la machine concernée. J'ai lu un truc de ce genre, si c'est le cas, ce que je suis entrain de faire est sans objet, puisque le but est de créer un exe comprenant tout.
    Une possibilité, que les fichiers .a soient (je ne sais quoi, par exemple un C ou OBJ) déguisé, il faut aussi que je comprenne la raison d'être de chacun des type de fichiers dans ce package, puisque, quand on charge cURL, on a plusieurs chois suivant l'utilisation.
    Ce qui m'ennuie, c'est qu'après avoir rajouté dans mon projet les ".a" renommés en ".lib" les adresses non résolues l'ont été, il n'y a don plus que cette erreur de type d'objet.
    Je viens de faire un essai "idiot", le même fichier, au lieu de le renommer en "lib" je l'ai renommé en "obj", résultat identique.
    Bref, que tout ça est compliqué.

  4. #4
    bzh_nicolas

    Re : Problème de link environnement Windows

    Les .a sont les librairies statique de Linux.
    Si tu utilises minGW, les .a sont également des lib statiques (cette fois sous windows) qui devraient se linker avec ton soft (en vue d'être intégrée dans l'exe) pour pouvoir ensuite utiliser les fonctions de la dll.
    En fait, ça fonctionne comme le link de avec des lib statiques, comme quand tu link avec kernel32.lib sous windows, le link est static et les fonction utilisées sont dans la dll kernel32.dll.

    Normalement si ton compilo t'a généré des .a et des .dll c'est qu'il est capable de s'en servir (et qu'il s'agit surement de minGW...). Par contre il faut peut-être utiliser des options spécifiques.

  5. A voir en vidéo sur Futura
  6. #5
    Dlzlogic

    Re : Problème de link environnement Windows

    Bonjour Nicolas,
    La lecture des question sur Google m'a montré que je n'étais pas le seul a avoir eu ce problème.
    Oui, d'après tout ce que j'ai lu, il semble bien que minGW.. soit la solution, puisque ce compilateur est fait pour tourner aussi bien sous Linux que sous Windows, ce que je viens d'apprendre.
    Les .a et les dll résultent du chargement de libcurl.
    Donc, je m'y mets et je vous tiens au courant.

  7. #6
    Dlzlogic

    Re : Problème de link environnement Windows

    Bonsoir,
    J'ai un tout petit peu avancé, mais pas beaucoup.
    J'ai pu créer ma librairie correctement.
    Mais là j'ai une nouvelle erreur (répétée 11 fois)
    [Lieur Erreur] Unresolved external '_Curl_resolver_init' referenced from G:\BC++B6\COMPUTING\LIBCURL.LI B|url
    Je n'avais jamais vu de barre verticale (juste avant url).
    J'ai regardé la map, pas de problème apparent.
    En fait, il me semble que ces références correspondent à un pointeur dans la DLL, appelé par Libcur.
    Alors j'ai généré des .lib correspondants aux .dll (utilitaire implib) aucun effet, puis j'ai généré des .def (utilitaire impdef), mais je ne sais pas comment les intégrer au projet. Je peux bien sûr le faire à la main dans le make ??
    Comme tout le monde s'en rends compte, je suis triste
    Cordialement.

  8. #7
    Dlzlogic

    Re : Problème de link environnement Windows

    Bonjour,
    Il semble qu'il faille ajouter le modificateur __declspec(dllimport)
    C'est effectivement prévu dans le .h, mais parmi des tas de #ifdef.
    Donc, je voudrais vérifier que ce modificateur est bien actif.
    Comme c'est un .h, pas possible de mettre des commentaires, et de toute façon, le link ne se fait pas.
    Il me semple que la seule solution est de planter la compile pour voir où cette directive est bien positionnée.
    Ca n'a pas l'ai efficace, quelqu'un aurait-il une idée.

  9. #8
    Jack
    Modérateur

    Re : Problème de link environnement Windows

    Il semble qu'il faille ajouter le modificateur __declspec(dllimport)
    C'est bien possible. Actuellement, j'appelle des fonction d'une DLL pour laquelle j'ai dû préfixer par __stdcall, ce qui me semble être la syntaxe équivalent made by microsoft.

    A+

  10. #9
    Dlzlogic

    Re : Problème de link environnement Windows

    Bonjour,
    Comme promis, je vous tiens au courant.
    J'ai trouvé à quoi correspondaient ces références non résolues, le link a bien marché, puis le gag, mon antivirus préféré (celui est sur ma machine mais je ne suis plus sûr de continuer à l'aimer) m'a balancé un message en rouge, puis a résolu immédiatement le problème, il a supprimé ce .exe que j'ai tant de mal à faire.
    En un sens, si on se met à la place de cet antivirus, il a fait exactement ce qu'on lui a appris à faire.
    Cordialement.

Discussions similaires

  1. Renault, R-link et son "R-link store"
    Par yoda1234 dans le forum Actualités
    Réponses: 3
    Dernier message: 25/12/2011, 10h29
  2. probleme de routeur d-link
    Par invite23d2e7ad dans le forum Internet - Réseau - Sécurité générale
    Réponses: 10
    Dernier message: 15/11/2010, 17h32
  3. Problème entre windows XP Pro et Windows Live Messenger
    Par invitec6ea7b51 dans le forum Sécurité et malwares : désinfectez votre machine
    Réponses: 13
    Dernier message: 23/04/2008, 12h18
  4. Probleme de vpn avec deux routeur D link G604V
    Par invitef7265d26 dans le forum Internet - Réseau - Sécurité générale
    Réponses: 4
    Dernier message: 23/07/2006, 14h04
  5. prise i-link
    Par invite05af5f0b dans le forum Matériel - Hardware
    Réponses: 3
    Dernier message: 19/09/2005, 08h37