Désarchiver une bibliothèque statique ?

Signaler
Messages postés
47
Date d'inscription
vendredi 18 février 2005
Statut
Membre
Dernière intervention
7 janvier 2018
-
Messages postés
570
Date d'inscription
jeudi 28 novembre 2002
Statut
Membre
Dernière intervention
18 janvier 2021
-
Salut à tous.

Sous linux pour désarchiver une bibliothèque statique on utilise "ar".
Mais pour Windows, quel est l'équivalent ?

J'ai un fichier libxxx.a compiler pour visual c++ et je voudrai extraire les fichiers .obj .
J'ai essaye de désarchiver un fichier .lib compiler pour devc++ et "ar " y arrive.
Mais pour libxxx.a compiler pour visual c++ ,"ar" me dit qu'il reconnait l'archive mais qu'il ne la traite pas.

exemple de message d'erreur:

$ ar xv opencv_core248.lib
BFD: opencv_core248.lib(opencv_core.dir/Release/opencv_core_pch.obj): Recognised but unhandled machine type (0x8664) in Import Library Format archive

Donc qu'elle type d'archive est utilisé par microsoft?


Merci !

4 réponses

Messages postés
92
Date d'inscription
samedi 26 mars 2005
Statut
Membre
Dernière intervention
23 septembre 2015

Bonjour !

Euh, quel est l'objetif du désarchivage d'un .lib ?
Messages postés
47
Date d'inscription
vendredi 18 février 2005
Statut
Membre
Dernière intervention
7 janvier 2018
2
Je ne suis pas un specialiste .
Mais pourquoi pas .
recuperer les fichiers .obj compiler pour visualc++ et recompiler avec devc++.
Et puis par curiosité.

--
Messages postés
92
Date d'inscription
samedi 26 mars 2005
Statut
Membre
Dernière intervention
23 septembre 2015

Euh ... J'ai toujours un doute.
Notamment car je pense qu'il n'est pas possible de prendre les .obj d'un compilateur pour les donner au linker d'un autre... (si je ne me trompe pas, DevC++ se base sur GCC.

De plus, comme je l'ai mis, les .obj vont au linker, pas au compilateur.

Je ne vois toujours pas l'intérêt de désarchiver un .lib
Messages postés
570
Date d'inscription
jeudi 28 novembre 2002
Statut
Membre
Dernière intervention
18 janvier 2021
2
C'est tout a fait possible avec LIB.EXE /EXTRACT
Le seul inconvénient est que la bibliothèque contient le chemin complet du fichier objet et que c'est ce chemin que l'on doit passer à LIB.
Dumppe /ALL (vc++ express ou +) permet d'avoir ce chemin.
Ce n'est pas pratique, d'où un conseil:
Télécharger le masm32 package (version 11),il contient un utilitaire, polib dont l'option /EXPLODE sort tous les fichiers objets d'une bibliothèque sans poser de questions.