Comment les fichiers de .lib et .obj se rapportent-ils les uns aux autres? Quel est leur but? Est un .lib juste une collection de fichiers .OBJ? Si c'est le cas, les .obj sont ensuite stockés à l'intérieur du .Lib rendant le .obj inutile? p>
3 Réponses :
typiquement, les fichiers C'est alors le travail des liaisons pour les relier, de sorte que Donc, dans un sens lâche, oui, la sortie binaire ( .Obj code> se réfèrent à fichiers d'objet em>. Ceci est un fichier source sous sa forme compilée. Par exemple, un
main.cpp code> et
foo.cpp code> produirait
main.obj code> et
foo.obj code>. < / p>
main.Obj code> peut atteindre des fonctions définies dans
foo.obj code> et vice-versa. La liaison émettra votre fichier binaire, qui est le
.lib code> (ou
.a code> ou
.exe code> ou .dll```, etc. ). p>
.lib code> dans votre cas) est la collection de fichiers liés
.OBJ code>. Une fois que vous avez terminé la compilation et que vous souhaitez utiliser la bibliothèque, vous n'avez besoin que d'autres programmes de lien avec le
.lib code>. Le
.obj code> sont les fichiers intermédiaires considérés et ne sont pas nécessaires après la réalisation de la liaison. P>
Cela dépend. Si le fichier .lib est une bibliothèque statique, il est plus ou moins juste une collection de fichiers .OBJ. Si vous faites ou utilisez une DLL, le fichier .Lib n'est qu'une bibliothèque d'importation, avec des informations sur les symboles disponibles dans la DLL correspondante. P>
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 la création de la .lib car le fichier .Lib contient une copie verbatim des fichiers .OBJ. P>
méfiez-vous que si vous utilisez un .Lib pour distribuer votre produit, vous devez généralement en créer 4 d'entre eux. Débogou vs libération de la construction et les deux arômes de CRT (/ mt vs / md). P>