Necesito optimizar el tamaño de mi ejecutable severamente ( ARMdesarrollo) y noté que en mi esquema de compilación actual ( gcc+ ld) los símbolos no utilizados no se eliminan.
El uso de arm-strip --strip-unneededpara los ejecutables / bibliotecas resultantes no cambia el tamaño de salida del ejecutable (no tengo idea de por qué, tal vez simplemente no pueda) .
¿Cuál sería la forma (si existe) de modificar la tubería de mi edificio, de modo que los símbolos no utilizados se eliminen del archivo resultante?
Ni siquiera pensaría en esto, pero mi entorno embebido actual no es muy "poderoso" y ahorrar incluso 500Klos 2Mresultados en un aumento de rendimiento de carga muy bueno.
Actualizar:
Por desgracia, la actual gccutilización versión que no tiene la -dead-stripopción y el -ffunction-sections... + --gc-sectionsde ldno dar ninguna diferencia significativa para los productos resultantes.
Me sorprende que esto incluso se convierta en un problema, porque estaba seguro de que gcc + lddebería eliminar automáticamente los símbolos no utilizados (¿por qué tienen que conservarlos?).
boostbibliotecas, el .exearchivo resultante contiene muchos archivos de objetos no utilizados y debido a las especificaciones de mi tiempo de ejecución incrustado actual , iniciar una 10mbaplicación lleva mucho más tiempo que, por ejemplo, iniciar una 500kaplicación.