Ho bisogno di ottimizzare la dimensione del mio eseguibile in modo serio ( ARMsviluppo) e ho notato che nel mio attuale schema di compilazione ( gcc+ ld) i simboli inutilizzati non vengono rimossi.
L'uso di arm-strip --strip-unneededper gli eseguibili / librerie risultanti non cambia la dimensione di output dell'eseguibile (non ho idea del perché, forse semplicemente non può) .
Quale sarebbe il modo (se esiste) per modificare la pipeline di costruzione, in modo che i simboli inutilizzati vengano rimossi dal file risultante?
Non ci penserei nemmeno, ma il mio attuale ambiente embedded non è molto "potente" e il risparmio anche 500Kdei 2Mrisultati in un bel miglioramento delle prestazioni di caricamento.
Aggiornare:
Sfortunatamente la gccversione corrente che uso non ha l' -dead-stripopzione e il -ffunction-sections... + --gc-sectionsfor ldnon dà alcuna differenza significativa per l'output risultante.
Sono scioccato dal fatto che questo sia diventato persino un problema, perché ero sicuro che gcc + ldavrebbe dovuto rimuovere automaticamente i simboli inutilizzati (perché devono anche tenerli?).
boostlibrerie, il .exefile risultante contiene molti file oggetto inutilizzati e a causa delle specifiche del mio attuale runtime incorporato , l'avvio di 10mbun'applicazione richiede molto più tempo rispetto, ad esempio, all'avvio di 500kun'applicazione.