2010-09-28 14 views

Répondre

3

J'ai toujours bien qu'ils étaient COFF le format

Voir ici pour plus d'informations: http://support.microsoft.com/?id=121460 alt text

+0

Semble pas, je sais que «.so» sur linux sont au format COFF, cependant. – wamp

+0

@wamp: les fichiers .so sur Linux sont au format ELF, comme les exécutables. –

4

Certains compilateurs (par exemple Microsoft.) Utilisent COFF format et certains (par exemple Borland/CodeGear.) Utilisent OMF format.

Voici la description du format microsoft's Lib file.

+0

Ce lien de KB est très vieux et ne me semble pas juste regarder quelques fichiers .lib modernes. – Rup

0

En examinant un fichier lib dans un éditeur hexadécimal (Visual Studio 2010), les données semblent être identiques à celles d'un fichier .a sur unix ... et une archive ar. Il a deux fichiers spéciaux (avec des noms vides) au début qui sont une sorte de liste de symboles.

EDIT: a trouvé une question en double Which format does static library (*.lib) files use? Where can I find "Official" specifications of *.LIB file structure/format? - il a un lien qui le confirme.

0

Ils sont normalement au format COFF (Common Object File Format), mais ils peuvent également être dans le format OMF (Object Module Format) pour les anciens compilateurs.

4

Il y a 2 types de fichiers avec .lib extension:

  1. la bibliothèque statique (pour la liaison statique)
  2. La bibliothèque d'importation (pour la liaison dynamique)

Les deux sont une archive des fichiers COFF. Le format de cette archive est une archive ar.

La commande unix (cygwin/mingw) ar peut analyser ce fichier comme le fait la commande tar.

Si vous voulez voir le fichier archivé dans un .lib, vous pouvez faire:

ar tv <name>.lib 

En général, si vous voyez le fichier .obj, cela signifie qu'il est une bibliothèque statique. Si vous voyez .dll, c'est une bibliothèque d'importation.

+0

vous êtes un roi! Merci –