A cosa serve “strip” (applicazione GCC)?

a cosa serve questa piccola domanda?

Quando lo si usa senza opzioni riduce la dimensione degli eseguibili, ma come / cosa fa?

Dalla pagina man (Mac OS X, ma altri sono simili):

strip rimuove o modifica la tabella dei simboli associata all’output dell’assembler e del link editor. Questo è utile per risparmiare spazio dopo che un programma è stato debugato e per limitare i simboli legati dynamicmente.

Si noti il ​​bit su “dopo che un programma è stato debugato” perché il debug di un eseguibile sottoposto a stripping è molto difficile, anzi. Il “limite dei simboli legati dynamicmente” è un uso più raro: consente di rendere inaccessibili alcune delle funzioni di una libreria esterna rimuovendo le voci dell’indice che indicano dove si trova il codice effettivo. Questo è anche spiegato nella pagina man.

Come poco costoso e abbondante come il disco è nella maggior parte delle situazioni, non ci si preoccuperebbe più di questo. Ma potresti volerlo per situazioni con limiti di spazio come dispositivi incorporati, dischi di salvataggio, ecc.

Strisce le informazioni sui simboli dal binario. Il binario contiene alcune informazioni che mappano simboli (ad es. Nomi di funzioni) in posizioni particolari. strip rimuove quelli.

Nella sua operazione predefinita, il comando strip rimuove la tabella dei simboli e tutte le informazioni di debug da un eseguibile.

Da qui