Sono un principiante makee mi chiedo quando utilizzare make clean.
Un collega mi ha detto che le build incrementali si makebasano sui timestamp dei file. Quindi, se fai il checkout di una vecchia versione di un file nel tuo VCS, avrà un "vecchio" timestamp e sarà contrassegnato come "non è necessario ricompilare questo file". Quindi, quel file non verrebbe incluso nella prossima build.
Secondo quello stesso collega, sarebbe un motivo da usare make clean.
Ad ogni modo, ho ottenuto approssimativamente la risposta alla domanda "quando usare make clean" da altre domande StackExchange ma la mia altra domanda è:
Perché le build incrementali che utilizzano si
makebasano sui timestamp dei file e non su SHA-1 per esempio? Git, ad esempio, mostra che possiamo determinare con successo se un file è stato modificato usando SHA-1.
È per problemi di velocità?
maketuo software, il tuo software non si romperà, ma makefa piuttosto uno sforzo per avere la retrocompatibilità nelle nuove versioni. Cambiare il comportamento di base senza una buona ragione è praticamente l'opposto di quello. E le date mostrano perché non è stato originariamente creato per utilizzare SHA-1 o perché non è stato facile modificarlo quando è diventato disponibile ( makeormai aveva decenni).
makeè stato creato negli anni '70. SHA-1 è stato creato negli anni '90. Git è stato creato negli anni 00. L'ultima cosa che vuoi è che alcune build oscure che funzionavano da 30 anni fallissero improvvisamente perché qualcuno ha deciso di diventare tutto moderno con un sistema collaudato.