Οδηγός Μελέτης - Εισαγωγή στον Προγραμματισμό

Α26.2 · Script ή recompile με το χέρι;

How to Make? (προσκεκλημένη διάλεξη), διαφάνειες 17-21 · Δυσκολία ★☆☆ · short-answer · Κεφάλαια: 26

Χτίζουμε ένα project με ένα bash script, build.sh, που τρέχει ένα gcc -c για κάθε αρχείο .c και ένα gcc -o για τη σύνδεση.

  1. Κάθε φορά που τρέχουμε το script, ξαναμεταγλωττίζεται όλο το πρόγραμμα από την αρχή, ανεξάρτητα από το αν άλλαξε κάποιο αρχείο. «Και;» Σκεφτείτε την GNU C Library: 1.524.568 γραμμές κώδικα σε πάνω από 14.000 αρχεία. Αν θέλαμε απλά να βάλουμε σχόλια σε ένα αρχείο, ακούγεται για καλή χρήση του χρόνου μας;
  2. Εναλλακτική: «Θα κάνω recompile με το χέρι τα αρχεία που αλλάζω, θα κάνω link με ένα bash script, κι αν θέλω να κάνω compile όλο το project, θα έχω ένα άλλο script για αυτό.» Κι αν ξεχάσεις να κάνεις κάτι recompile; Τι θα δείτε όταν τρέξετε το πρόγραμμα;
  3. Τι πληροφορία χρειάζεται ένα εργαλείο για να αποφασίσει μόνο του ποια αρχεία να ξαναμεταγλωττίσει;

Υπόδειξη

Για το 2, θυμηθείτε την ιστορία του Steve Johnson που αναφέρει ο Stuart Feldman. Για το 3, σκεφτείτε τι εξαρτάται από τι (ένα .o από ποια .c και .h) και πώς καταλαβαίνουμε ότι ένα αρχείο άλλαξε μετά από ένα άλλο.

Αριθμός στον οδηγό: Α26.2 (στο κεφάλαιο) · Μόνιμο αναγνωριστικό: slides-lecmake-forgot-recompile · Σύνδεσμος: https://progintro.github.io/study/questions/slides/slides-lecmake-forgot-recompile.html · Markdown (GitHub)