В чем разница между файлами.LIB и.OBJ? (Visual Studio C++)

Я знаю, что.OBJ - это результат компиляции модуля компиляции, а.LIB - статическая библиотека, которая может быть создана из нескольких.OBJ, но, похоже, это различие заключается только в количестве единиц компиляции. Есть ли другая разница? Это тот же или другой формат файла?

Я пришел к этому вопросу, задаваясь вопросом, объединяется ли одна и та же статическая переменная, определенная в двух (или более) .LIBs, во время компоновки в конечный исполняемый файл. Для.OBJs переменные объединяются. Но то же самое в.LIBs?

2 ответа

Решение

Файл.LIB представляет собой набор файлов.OBJ, соединенных вместе с индексом. Не должно быть никакой разницы в том, как обрабатывает линкер.

Кажется, что файл.lib похож на коллекцию файлов.obj. Некоторые люди также рассматривают процесс, который переключает несколько файлов.obj на.lib, как Архив. В этом случае файл.lib представляет собой блок файла.obj, который может обрабатываться компоновщиком одинаково.

Другие вопросы по тегам