Tengo una biblioteca estática * .lib creada usando MSVC en Windows. El tamaño de la biblioteca es, por ejemplo, 70 KB. Entonces tengo una aplicación que vincula esta biblioteca. Pero ahora el tamaño del ejecutable final (* .exe) es de 29 KB, menos que la biblioteca. Lo que yo quiero saber es:Tamaño de una biblioteca y el ejecutable
Desde la biblioteca se vincula estáticamente, estaba pensando que debería añadir directamente al tamaño del ejecutable y el tamaño final exe debe ser más que eso? ¿El formato de Windows exe también hace algo de compresión de los datos binarios?
¿Cómo se relaciona el tamaño de la biblioteca en Linux (* .a/*. La la) con el tamaño del ejecutable de Linux (* .out)?
-AD
En realidad no es sólo las funciones de referencia, sino que, además de los símbolos en los mismos archivos * .o (es decir, objetos enteros son lanzados en el resultado final, no sólo funciones), por lo que si A y B están en el mismo .o que C, y se llama a C, entonces todos estarán allí. – tgamblin
No necesariamente, solo con compiladores/enlazadores tontos. – MSalters
¿Puedo suponer que el enlazador GNU que está en la cadena de herramientas de GCC es uno de los más inteligentes? (Usted dijo "En Linux", que implica fuertemente la cadena de herramientas GCC.) – steveha