2009-09-01 14 views
23

Lo sé .OBJ es el resultado de compilar una unidad de compilación y .LIB es una biblioteca estática que se puede crear a partir de varios .OBJ, pero esta diferencia parece ser solo en el número de unidades de compilación . ¿Hay alguna otra diferencia? ¿Es el mismo o diferente formato de archivo?¿Cuál es la diferencia entre los archivos .LIB y .OBJ? (Visual Studio C++)

He llegado a esta pregunta cuando me pregunto si la misma variable estática definida en dos (o más) .LIB se fusiona o no durante la vinculación al ejecutable final. Para .OBJs, las variables se fusionan. ¿Pero es lo mismo en .LIBs?

Respuesta

35

Un archivo .LIB es una colección de archivos .OBJ concatenados junto con un índice. No debería haber diferencia en cómo trata el enlazador tampoco.

4

Parece que el archivo .lib es como una colección de archivos .obj. Algunas personas también consideran el proceso, que cambia varios archivos .obj a archivos .lib, como Archivo. En ese caso, el archivo .lib es un cuadro del archivo .obj, que podría ser tratado igualmente por el vinculador.

+2

'.lib' en windows es lo mismo que' .a' en linux. –

Cuestiones relacionadas