Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1082 connectés 

  FORUM HardWare.fr
  Programmation
  Divers

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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°1222579
cervantes
Posté le 13-10-2005 à 22:40:49  profilanswer
 

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
 
++

mood
Publicité
Posté le 13-10-2005 à 22:40:49  profilanswer
 

n°1222745
HelloWorld
Salut tout le monde!
Posté le 14-10-2005 à 09:42:16  profilanswer
 

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
n°1222749
Elmoricq
Modérateur
Posté le 14-10-2005 à 09:47:01  profilanswer
 

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
n°1222821
cervantes
Posté le 14-10-2005 à 10:38:16  profilanswer
 

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

n°1222823
cervantes
Posté le 14-10-2005 à 10:39:29  profilanswer
 

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

n°1222994
HelloWorld
Salut tout le monde!
Posté le 14-10-2005 à 11:54:57  profilanswer
 

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
n°1222999
Elmoricq
Modérateur
Posté le 14-10-2005 à 11:56:36  profilanswer
 

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 ?

n°1223464
HelloWorld
Salut tout le monde!
Posté le 14-10-2005 à 18:09:48  profilanswer
 

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
n°1223564
jesus_chri​st
votre nouveau dieu
Posté le 14-10-2005 à 22:16:51  profilanswer
 

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.

n°1247041
cervantes
Posté le 16-11-2005 à 19:33:16  profilanswer
 

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

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Divers

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

 

Sujets relatifs
Accéder au contexte du portail Vignette avec un programme javaPiloter un programme dans un *.bat
Convertir un mod entre deux php - noob insidepetit programme
bloqué sur un petit programme en CExecution d'un programme en C++
convertir nbre saisitQu'est-ce qui ne vas pas dans ce programme ?
mingw developer studiométhode de conception pour une interface graphique pour mon programme
Plus de sujets relatifs à : PEut on convertir un .:lib en .a pour compiler programme sous Mingw?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR