Подтвердить что ты не робот

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

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

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

4b9b3361

Ответ 1

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

Ответ 2

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