2012-07-12 9 views
7

que estoy teniendo un proyecto de biblioteca, que siempre he tenido "Strip Debug Symbols" activada para las versiones de lanzamientoXCode LLVM + GCC 4.2 - Generar símbolos de depuración

poco me di cuenta de la "Generate Debug Symbols" bandera. Cuando configuro el indicador "Generate Debug Symbols" en NO, el tamaño de mi biblioteca se reduce en un 30%

¿Es esta una optimización razonable para las versiones de lanzamiento?

¿Cuál es la diferencia entre "Símbolos de depuración de Gaza" y "generar símbolos de depuración" opción, a ser posible si me tira símbolos de depuración serán no todos los símbolos de depuración generados a desaparecer? ¿Por qué estoy viendo esta diferencia?

¿Qué otras optimizaciones además de -Os (Más rápido, Más pequeño) puedo hacer para reducir el tamaño del binario?

¿Cómo funciona "Strip Linked Product"?

+0

Obtuve una buena comprensión de este enlace, pero aún así me encantaría que alguien lo explique ... http://developer.apple.com/library/mac/#documentation/DeveloperTools/Reference/XcodeBuildSettingRef/1-Build_Setting_Reference /build_setting_ref.html – Santthosh

Respuesta

2

En cuanto a la reducción del tamaño del archivo binario, esta es la forma en mi archivo de configuración de liberación se parece en relación con la extracción del binario y supongo que así es como la mayoría de los desarrolladores lo hacen:

DEPLOYMENT_POSTPROCESSING = YES 
COPY_PHASE_STRIP = NO (not necessary since my copied binaries are already stripped and codesigned) 
STRIP_INSTALLED_PRODUCT = YES 
STRIP_STYLE = all 
SEPARATE_STRIP = YES 
DEAD_CODE_STRIPPING = YES 
GCC_GENERATE_DEBUGGING_SYMBOLS = NO 

Con éstos la configuración de creación Xcode parece hacer lo mismo que ejecutar "strip" manualmente en el binario, al menos desde lo que dice el tamaño del archivo.

No he encontrado ninguna otra forma de reducir aún más el tamaño binario. Observe allí el indicador "DEPLOYMENT_POSTPROCESSING": el tamaño del binario será mucho mayor sin él y, por ejemplo, no se eliminarán todas las funciones C.

+0

No responde completamente la pregunta. ¿Cuál es la diferencia entre "Strip Debug Symbols" y "Generate Debug Symbols"? Por sus nombres, suenan como que se contradicen entre sí. Típico absurdo Xcode imo. – Ash

Cuestiones relacionadas