2010-01-23 2 views

Répondre

10

Généralement, les fichiers .obj font référence à fichiers objet. C'est un fichier source dans sa forme compilée. Par exemple, un main.cpp et un foo.cpp produiraient main.obj et foo.obj.

Il est alors le travail des liens pour les lier ensemble, de sorte que main.obj peut atteindre les fonctions définies dans foo.obj et vice-versa. L'éditeur de liens affichera votre fichier binaire, qui est le .lib (ou .a, ou .exe, ou .dll``, etc.). Donc dans un sens lâche, oui, la sortie binaire (.lib dans votre cas) est la collection de fichiers .obj liés. Une fois que vous avez terminé la compilation et que vous souhaitez utiliser la bibliothèque, vous n'avez besoin que d'autres programmes pour lier avec le .lib. Les .obj sont considérés comme des fichiers intermédiaires et ne sont pas nécessaires une fois la liaison terminée.

2

Cela dépend. Si le fichier .lib est une bibliothèque statique, il s'agit plus ou moins d'une collection de fichiers .obj. Si vous créez ou utilisez une DLL, le fichier .lib est simplement une bibliothèque d'importation, avec des informations sur les symboles disponibles dans la DLL correspondante.

1

Oui, un fichier .lib est simplement une collection de fichiers .obj. Rien n'a été fait avec le contenu des fichiers .obj, la meilleure analogie est une archive .zip. Oui, vous pouvez supprimer les fichiers .obj après avoir créé le fichier .lib car le fichier .lib contient une copie textuelle des fichiers .obj.

Attention, si vous utilisez un fichier .lib pour distribuer votre produit, vous devrez généralement en créer 4. Debug vs Release build et les deux versions de CRT (/ MT vs/MD).