2009-09-01 7 views
23

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

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

ответ

35

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

4

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

+2

'.lib' в окнах такой же, как' .a' в linux. –