Tenemos un gran proyecto, más de 1 millón de líneas de código en aproximadamente 300 DLL. Hasta ahora hemos estado usando VS6.Enorme OBJ archivos en VS2008 C++ compilación en comparación con VS6
Ahora he convertido todo a VS2008, todas las compilaciones, enlaces y más importante: ¡se ejecuta!
==> Sin embargo ... los archivos compilados OBJ resultantes son X 10 más grandes y la vinculación es extremadamente lenta, con el enlazador golpeando> 1GB de memoria con bastante frecuencia.
Parte de las implicaciones son que necesito compilar ciertos argumentos con/bigobj.
El resultado es una construcción que pasó de aproximadamente 1:45 en un escritorio a 3 horas. Las DLL y las LIBS son aproximadamente del mismo tamaño que en la versión anterior de VS6.
He leído todo lo que he podido encontrar aquí pero no he encontrado una solución a este problema. Si es información de DEPURACIÓN adicional, no lo quiero. Ya tuve suficiente antes. El tamaño en la versión aumentó, pero no tanto ...
¿Alguien tiene alguna idea? ¿O es mi única opción dividir los proyectos en unidades mucho más pequeñas? ¿Refactorizar es mi única esperanza? Seguramente hay una bandera secreto echaba de menos ...
Edit1 (13/07/2012 12: 20BST) He comparado dumpbin de un obj creado por VS6 vs VS2008. El de 2008 aparece como si estuviera "enlazando estáticamente". En VS6 contiene algunos símbolos todos de la DLL actual. En VS2008 contiene símbolos de (probablemente) todas las bibliotecas de las que depende. Los tamaños de Dumpbin son 66kb y 32,000kb para VS6 y VS2008, respectivamente.
Intenta deshabilitar la "información de depuración" en la configuración del proyecto (rama C++). –
_ "Tenemos un gran proyecto,> 1M de líneas de código en aproximadamente 300 DLL. Hasta ahora hemos estado usando VS6." _ Nunca volveré a quejarme de mi trabajo. – Luke
@IvanShcherbakov - ¿esto no me impedirá depurar fácilmente? – aabramovich