PEut on convertir un .:lib en .a pour compiler programme sous Mingw?

PEut on convertir un .:lib en .a pour compiler programme sous Mingw? - Divers - Programmation

Marsh Posté le 13-10-2005 à 22:40:49    

Lo
 
Voila, j'utilise Mingw pour compiler mes programmes C sur Windows. J'ai une librairie .lib créé avec VC++. Comment compiler mes programmes C avec cette librairie .lib avec Mingw?
 
Sinon est ce qu'il y a un moyen de convertir un .lib en .a? ca serait tout aussi bien
 
++

Reply

Marsh Posté le 13-10-2005 à 22:40:49   

Reply

Marsh Posté le 14-10-2005 à 09:42:16    

Si c'est pas une lib statique, re nomme ton toto.lib en libtoto.a et ça devrait passer. Sinon, je sais pas ce que ça va donner.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 14-10-2005 à 09:47:01    

HelloWorld a écrit :

Si c'est pas une lib statique, re nomme ton toto.lib en libtoto.a et ça devrait passer.


 
Un .a c'est pas une archive ar avec des libs statiques dedans, normalement ?
Du coup je ne crois pas que ce soit le même format, mais je ne sais pas à quelle sauce VC++ crée ses .lib [:spamafote]
 
Maintenant y a peut-être moyen de convertir, ou alors faut recompiler la lib sous mingw...
 
EDIT : je viens de trouver ça, qui devrait aider : http://www.mingw.org/mingwfaq.shtml#faq-msvcdll


Message édité par Elmoricq le 14-10-2005 à 09:49:24
Reply

Marsh Posté le 14-10-2005 à 10:38:16    

Slt,
 
si un .a est une archive avec des librairies statiques.
Je ne vais pas pouvoir recompiler la lib sous mingw car pour faire cette lib, il a ete utilisé MKS.
 
Merci pour le lien elmoricq

Reply

Marsh Posté le 14-10-2005 à 10:39:29    

Slt,
 
si un .a est une archive avec des librairies statiques.
Je ne vais pas pouvoir recompiler la lib sous mingw car pour faire cette lib, il a ete utilisé MKS.
 
Merci pour le lien elmoricq

Reply

Marsh Posté le 14-10-2005 à 11:54:57    

Les .a de MingW sont au format COFF, le même que VC++. J'ai déjà compilé une dll C sous VC++, renommé le .lib en .a, et pu lier avec devcpp.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 14-10-2005 à 11:56:36    

HelloWorld a écrit :

Les .a de MingW sont au format COFF, le même que VC++. J'ai déjà compilé une dll C sous VC++, renommé le .lib en .a, et pu lier avec devcpp.


 
Ca veut dire qu'un .a créé sous MingW n'est pas compatible avec un .a créé sous Unix ?

Reply

Marsh Posté le 14-10-2005 à 18:09:48    

Sûrement. Je connais pas le format sous Unix, je sais que COFF y existe. Et même, vu les différences des plateformes, ça me semble difficilement envisageable / utile. Faudrait demander à Jean-Pierre.
Note que je parle pour les libs d'import. Pour les libs statiques je sais pas ce qu'utilise MingW.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 14-10-2005 à 22:16:51    

mingw et visual on le même format binaire, les .o sont compatibles .obj, idem .a/.lib
mingw et ggc sous linux ne produisent pas les même binaires.

Reply

Marsh Posté le 16-11-2005 à 19:33:16    

Slt tous,
 
J'ai effectivement essayé vos différents conseils. Mais je n'arrive toujours pas à compiler mon programme c et la lib .lib avec gcc de mingw.  
Alors j'ai tenté de:
 
- renommer le .lib en .a  
- renommer les .obj en .o puis création du .a
 
mais ca ne marche pas j'ai les erreurs suivante à la compilation:
 

Code :
  1. D:\Users\x0tdable\Portage LESTE (Lot 2) - Livraison 2005-10-13\lib\Leste.lib(./R
  2. elease/fc_parse.obj)(.text[_yydfclex]+0x341):C:\cvs\Modelage\Le: variable '_iob'
  3. can't be auto-imported. Please read the documentation for ld's --enable-auto-im
  4. port for details.
  5. D:\Users\x0tdable\Portage LESTE (Lot 2) - Livraison 2005-10-13\lib\Leste.lib(./R
  6. elease/fc_util.obj)(.text[_new_allocation]+0x1d):C:\cvs\Modelage\Le: variable '_
  7. iob' can't be auto-imported. Please read the documentation for ld's --enable-aut
  8. o-import for details.
  9. D:\Users\x0tdable\Portage LESTE (Lot 2) - Livraison 2005-10-13\lib\Leste.lib(./R
  10. elease/fc_util.obj)(.text[_new_allocation]+0x6c):C:\cvs\Modelage\Le: variable '_
  11. iob' can't be auto-imported. Please read the documentation for ld's --enable-aut
  12. o-import for details.
  13. D:\Users\x0tdable\Portage LESTE (Lot 2) - Livraison 2005-10-13\lib\Leste.lib(./R
  14. elease/fc_util.obj)(.text[_allocation]+0x9b):C:\cvs\Modelage\Le: variable '_iob'
  15. can't be auto-imported. Please read the documentation for ld's --enable-auto-im
  16. port for details.
  17. D:\Users\x0tdable\Portage LESTE (Lot 2) - Livraison 2005-10-13\lib\Leste.lib(./R
  18. elease/fc_util.obj)(.text[_allocation]+0xd1):C:\cvs\Modelage\Le: variable '_iob'
  19. can't be auto-imported. Please read the documentation for ld's --enable-auto-im
  20. port for details.
  21. D:\Users\x0tdable\Portage LESTE (Lot 2) - Livraison 2005-10-13\lib\Leste.lib(./R
  22. elease/fc_util.obj)(.text[Info: resolving __iob by linking to __imp___iob (auto-
  23. import)
  24. _allocation_sys]+0x17):C:\cvs\Modelage\Le: variable '_iob' can't be auto-importe
  25. d. Please read the documentation for ld's --enable-auto-import for details.
  26. Warning: .drectve `-defaultlib:LIBC ' unrecognized
  27. Warning: .drectve `-defaultlib:OLDNAMES ' unrecognized
  28. Warning: .drectve `-defaultlib:LIBC ' unrecognized
  29. Warning: .drectve `-defaultlib:OLDNAMES ' unrecognized
  30. Warning: .drectve `-defaultlib:LIBC ' unrecognized
  31. Warning: .drectve `-defaultlib:OLDNAMES ' unrecognized
  32. Warning: .drectve `-defaultlib:LIBC ' unrecognized
  33. Warning: .drectve `-defaultlib:OLDNAMES ' unrecognized
  34. Warning: .drectve `-defaultlib:LIBC ' unrecognized
  35. Warning: .drectve `-defaultlib:OLDNAMES ' unrecognized
  36. Warning: .drectve `-defaultlib:LIBC ' unrecognized
  37. Warning: .drectve `-defaultlib:OLDNAMES ' unrecognized
  38. Warning: .drectve `-defaultlib:uuid.lib ' unrecognized
  39. Warning: .drectve `-defaultlib:uuid.lib ' unrecognized
  40. Warning: .drectve `-defaultlib:LIBC ' unrecognized
  41. Warning: .drectve `-defaultlib:OLDNAMES ' unrecognized
  42. Warning: .drectve `-defaultlib:LIBC ' unrecognized
  43. Warning: .drectve `-defaultlib:OLDNAMES ' unrecognized
  44. D:\Users\x0tdable\Portage LESTE (Lot 2) - Livraison 2005-10-13\lib\Leste.lib(./R
  45. elease/LT_mess.obj)(.text[_LT_read_mess]+0x6):C:\cvs\Modelage\Le: undefined refe
  46. rence to `_chkstk'
  47. D:\Users\x0tdable\Portage LESTE (Lot 2) - Livraison 2005-10-13\lib\Leste.lib(./R
  48. elease/LT_mess.obj)(.text[_LT_write_mess]+0x6):C:\cvs\Modelage\Le: undefined ref
  49. erence to `_chkstk'
  50. D:\Users\x0tdable\Portage LESTE (Lot 2) - Livraison 2005-10-13\lib\Leste.lib(./R
  51. elease/LT_param.obj)(.text[_LT_ext_str_b10]+0x6):C:\cvs\Modelage\Le: undefined r
  52. eference to `_chkstk'
  53. D:\Users\x0tdable\Portage LESTE (Lot 2) - Livraison 2005-10-13\lib\Leste.lib(./R
  54. elease/LT_param.obj)(.text[_LT_ext_str_b16]+0x6):C:\cvs\Modelage\Le: undefined r
  55. eference to `_chkstk'
  56. D:\Users\x0tdable\Portage LESTE (Lot 2) - Livraison 2005-10-13\lib\Leste.lib(./R
  57. elease/LT_init.obj)(.text[_LT_close]+0x6):C:\cvs\Modelage\Le: undefined referenc
  58. e to `_chkstk'
  59. D:\Users\x0tdable\Portage LESTE (Lot 2) - Livraison 2005-10-13\lib\Leste.lib(./R
  60. elease/fc_code.obj)(.text[_write_header_fc]+0x6):C:\cvs\Modelage\Le: more undefi
  61. ned references to `_chkstk' follow
  62. fu000001.o(.idata$3+0xc): undefined reference to `libmsvcrt_a_iname'
  63. nmth000000.o(.idata$4+0x0): undefined reference to `_nm___iob'
  64. collect2: ld returned 1 exit status


 
J'ai testé aussi ce qui etait écrit ici: http://www.mingw.org/mingwfaq.shtml#faq-msvcdll
Le probleme c'est que losque je fais:
 

Code :
  1. reimp mon_fichierl.lib


j'ai 8 fichiers sans extension en sortie ayant pour noms:  0 8 14 32 54 132 158 162
 

Code :
  1. pexports mon_fichier.dll | sed "s/^_//" >  mon_fichier.def


en ce qui concerne cette ligne, je n'ai pas de .dll. J'ai recompilé ma .lib en .dll sous VC++ et réappliqué cette commande, mais en sortie mon fichier .def est vide :S
Donc au final je n'ai ni réussi à compiler le .lib avec gcc, ni convertit le .lib en .a
 
Est ce que quelqu'un sait d'ou cela pourrait venir?


Message édité par cervantes le 16-11-2005 à 19:34:48
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed