Se la compilazione comincia a chiedere troppo spazio…

Vi è mai capitato che mentre compilate un sorgente la compilazione cominci a chiedere sempre più spazio, “mangiandosi” letteralmente centinaia e centinaia di megabyte, in una maniera assolutamente sproporzionata a quanto sarebbe lecito aspettarsi?


A me sì, proprio ieri, e dopo un po’ d’investigazione nei meandri dei file creati dal compilatore ho scoperto che i file incriminati hanno tutti estensione .h.gch, così cercando su internet ho scoperto una utile caratteristica dei compilatori c++ : la precompilazione degli header.

Senza scendere nei particolari(che non comprenderei neanch’io), questa caratteristica permette di diminuire i tempi della seconda e delle successive ricompilazioni, rubando però tempo alla prima compilazione(che nella maggior parte dei casi è l’unica che interessa), quindi sembra una caratteristica utile fondamentalmente a chi compila e ricompila spesso progetti con parti di codice che non cambiano, ad esempio gli sviluppatori.

Per di più, a quanto pare, a volte qualcosa può andare storto e allora il compilatore prenderà a creare file dalle dimensioni abnormi, fallendo così nel suo proposito. Toh, sembra proprio il mio caso; resta a questo punto da trovare la “cura”.

Spulciando il file config.log del sorgente che mi aveva dato problemi, alla ricerca di ispirazione, mi è saltata agli occhi l’opzione:
--disable-precomp-headers
sembra interessante; ridò il comando configure includendo questa opzione e, magicamente, la successiva compilazione va a buon fine!!

Problema risolto!!

Annunci

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: