Skip to main content

Κατανόηση της εντολής Unix και Linux: make

Introduction to Bitcoin (Ενδέχεται 2024)

Introduction to Bitcoin (Ενδέχεται 2024)
Anonim

Ο σκοπός της χρησιμότητας make είναι να προσδιοριστεί αυτόματα ποια κομμάτια ενός μεγάλου προγράμματος πρέπει να επανασυναρμολογηθούν και να εκδώσουν τις εντολές για να τις επανασυναρμολογήσουν. Το εγχειρίδιο περιγράφει την εφαρμογή GNU της μάρκας, η οποία γράφτηκε από τους Richard Stallman και Roland McGrath. Αυτά τα παραδείγματα δείχνουν προγράμματα C δεδομένου ότι είναι πιο κοινά, αλλά μπορείτε να χρησιμοποιήσετε make με οποιαδήποτε γλώσσα προγραμματισμού του οποίου ο μεταγλωττιστής μπορεί να τρέξει με μια εντολή shell. Στην πραγματικότητα, κάνει δεν περιορίζεται σε προγράμματα. Μπορείτε να το χρησιμοποιήσετε για να περιγράψετε οποιαδήποτε εργασία, όπου ορισμένα αρχεία πρέπει να ενημερώνονται αυτόματα από άλλους όταν αλλάζουν οι άλλοι.

Σημείωση: Αυτή η σελίδα είναι ένα απόσπασμα της τεκμηρίωσης του GNU make . Ενημερώνεται μόνο περιστασιακά επειδή το έργο GNU δεν χρησιμοποιεί nroff. Για την πλήρη τεκμηρίωση της τρέχουσας τεκμηρίωσης, ανατρέξτε στο αρχείο πληροφοριών make.info που γίνεται από το αρχείο source texinfo make.texinfo.

Σύνταξη και προετοιμασία της χρησιμότητας

φτιαχνω, κανω -φά makefile επιλογή … στόχος …

Για να προετοιμαστείτε να χρησιμοποιήσετε make, πρέπει να γράψετε ένα αρχείο που ονομάζεται makefile που περιγράφει τις σχέσεις μεταξύ των αρχείων στο πρόγραμμα σας και αναφέρει τις εντολές για την ενημέρωση κάθε αρχείου. Συνήθως ένα εκτελέσιμο αρχείο ενημερώνεται από τα αρχεία αντικειμένων, τα οποία στη συνέχεια γίνονται με τη συμπλήρωση αρχείων προέλευσης.

Μόλις υπάρχει ένα κατάλληλο makefile, κάθε φορά που αλλάζετε κάποια αρχεία προέλευσης αυτή την απλή εντολή shell φτιαχνω, κανω αρκεί για να εκτελέσει όλες τις απαραίτητες ανασυνθέσεις. Το make πρόγραμμα χρησιμοποιεί τη βάση δεδομένων makefile και τους τελευταίους χρόνους τροποποίησης των αρχείων για να αποφασίσει ποια από τα αρχεία πρέπει να ενημερωθούν. Για κάθε ένα από αυτά τα αρχεία, εκδίδει τις εντολές που έχουν καταγραφεί στη βάση δεδομένων.

Το βοηθητικό πρόγραμμα εκτέλεσης εντολών εκτελεί εντολές στο makefile για να ενημερώσει ένα ή περισσότερα ονόματα στόχων, όπου όνομα είναι συνήθως ένα πρόγραμμα. Εάν όχι-φά επιλογή είναι παρούσα, make θα ψάξει για makefilesGNUmakefile, makefile, καιMakefile, με αυτή τη σειρά.

Κανονικά θα πρέπει να καλέσετε το makefile είτε makefile είτε Makefile. (Συνιστάται να χρησιμοποιήσετε το Makefile επειδή εμφανίζεται εμφανώς κοντά στην αρχή μιας καταχώρησης καταλόγου, ακριβώς κοντά σε άλλα σημαντικά αρχεία, όπωςREADME.) Το πρώτο όνομα που ελέγχεται, GNUmakefile, δεν συνιστάται για τα περισσότερα makefiles. Θα πρέπει να χρησιμοποιήσετε αυτό το όνομα εάν έχετε ένα makefile που είναι συγκεκριμένο για το GNU make και δεν θα κατανοηθεί από άλλες εκδόσεις του make. Αν είναι το makefile -, διαβάζεται η τυπική είσοδος.

ο φτιαχνω, κανω το βοηθητικό πρόγραμμα ενημερώνει έναν στόχο εάν εξαρτάται από τα απαραίτητα αρχεία που έχουν τροποποιηθεί από την τελευταία τροποποίηση του στόχου ή αν ο στόχος δεν υπάρχει.

Επιλογές

ο -σι και -m οι επιλογές αγνοούνται για λόγους συμβατότητας με άλλες εκδόσεις μάρκας.

θα αλλάξει σε dir directory πριν διαβάσετε τα makefiles ή κάνοντας οτιδήποτε άλλο. Αν είναι πολλαπλά-ΝΤΟ οι επιλογές καθορίζονται, κάθε μία ερμηνεύεται σε σχέση με την προηγούμενη:-ΝΤΟ/ -C κ.λπ. είναι ισοδύναμο με-C / κλπ. Αυτό χρησιμοποιείται συνήθως με αναδρομικές επικλήσεις της μάρκας.

ο -ρε επιλογή θα εκτυπώσει τις πληροφορίες αποσφαλμάτωσης εκτός από την κανονική επεξεργασία. Οι πληροφορίες εντοπισμού σφαλμάτων αναφέρουν ποια αρχεία εξετάζονται για επανασχηματισμό, ποιες χρονικές στιγμές συγκρίνονται και ποια αποτελέσματα, ποια αρχεία πρέπει να επαναδιατυπωθούν, ποιους σιωπηρούς κανόνες εξετάζουμε και ποιες εφαρμόζονται; όλα ενδιαφέροντα για το πώς αποφασίζει τι πρέπει να κάνει .

ο -μι επιλογή δίνει μεταβλητές που λαμβάνονται από την προτεραιότητα περιβάλλοντος έναντι των μεταβλητών από makefiles.

ο -φά αρχείο επιλογή χρησιμοποιεί αρχείο ως makefile.

ο -Εγώ επιλογή αγνοεί όλα τα σφάλματα στις εντολές που εκτελούνται για την επαναφορά των αρχείων.

ο -ΕΓΩ Διεύθυνση επιλογή καθορίζει έναν κατάλογο Διεύθυνση για να αναζητήσετε τα ενσωματωμένα αρχεία makefiles. Εάν υπάρχουν πολλά-ΕΓΩ οι επιλογές χρησιμοποιούνται για τον καθορισμό πολλών καταλόγων, οι κατάλογοι αναζητούνται με τη σειρά που καθορίζεται. Σε αντίθεση με τα επιχειρήματα σε άλλες σημαίες της μάρκας, οι κατάλογοι που δίνονται με-ΕΓΩ οι σημαίες μπορούν να έρθουν αμέσως μετά τη σημαία:-Ιδιάρ επιτρέπεται, καθώς και- Εγώ . Αυτή η σύνταξη επιτρέπεται για συμβατότητα με τον προεπεξεργαστή C-ΕΓΩ σημαία.

ο -j θέσεις εργασίας επιλογή καθορίζει τον αριθμό των εργασιών (εντολών) που εκτελούνται ταυτόχρονα. Εάν υπάρχουν περισσότερα από ένα-j επιλογή, η τελευταία είναι αποτελεσματική. Αν το-j η επιλογή δίνεται χωρίς ένα επιχείρημα, make δεν περιορίζει τον αριθμό των εργασιών που μπορούν να εκτελεστούν ταυτόχρονα.

ο η επιλογή συνεχίζεται όσο το δυνατόν περισσότερο μετά από σφάλμα. ενώ ο στόχος που απέτυχε και εκείνοι που εξαρτώνται από αυτό δεν μπορούν να επανατοποθετηθούν, οι άλλες εξαρτήσεις αυτών των στόχων μπορούν να επεξεργαστούν το ίδιο.

ο -μεγάλο και -l φορτίο οι επιλογές ορίζουν ότι δεν θα πρέπει να ξεκινούν νέες εργασίες (εντολές) αν υπάρχουν άλλες εργασίες και το μέσο φορτίο είναι τουλάχιστονφορτώνω (ένας αριθμός κινητής υποδιαστολής). Με κανένα επιχείρημα, αφαιρεί ένα προηγούμενο όριο φόρτωσης.

ο επιλογή εκτυπώνει τις εντολές που θα εκτελεστούν, αλλά δεν τις εκτελεί.

ο αρχείο επιλογή δεν επαναδιατυπώνει το αρχείο ακόμη και αν είναι παλαιότερη από τις εξαρτήσεις της, και δεν επαναδιατυπώνει τίποτα λόγω αλλαγών στο αρχείο . Ουσιαστικά το αρχείο αντιμετωπίζεται ως πολύ παλιό και οι κανόνες του αγνοούνται.

ο επιλογή εκτυπώνει τη βάση δεδομένων (κανόνες και μεταβλητές τιμές) που προκύπτει από την ανάγνωση των makefiles. Στη συνέχεια εκτελείται ως συνήθως ή όπως ορίζεται διαφορετικά.Αυτό εκτυπώνει επίσης τις πληροφορίες έκδοσης που δίνει η-v (βλ. παρακάτω). Για να εκτυπώσετε τη βάση δεδομένων χωρίς να προσπαθήσετε να επανασχεδιάσετε οποιαδήποτε αρχεία, χρησιμοποιήστε τοφτιαχνω, κανω -f / dev / null .

ο -q η επιλογή θέτει τον τρόπο ερώτησης. Μην εκτελείτε εντολές ή εκτυπώνετε τίποτα, απλώς επιστρέφετε μια κατάσταση εξόδου η οποία είναι μηδενική, αν οι καθορισμένοι στόχοι είναι ήδη ενημερωμένοι, διαφορετικά μη εναντίον.

ο -r επιλογή εξαλείφει τη χρήση των ενσωματωμένων κανόνων σιωπηρών. Επίσης, καταργεί την προεπιλεγμένη λίστα επιθημάτων για τους κανόνες κατάληξης.

ο -μικρό επιλογή σιωπά τη λειτουργία. Δεν εκτυπώνει τις εντολές καθώς εκτελούνται.

ο -ΜΙΚΡΟ επιλογή ακυρώνει την επίδραση του επιλογή. Αυτό δεν είναι ποτέ απαραίτητο εκτός από μια αναδρομική μάρκα όπου μπορεί να κληρονομηθεί από το κορυφαίο make μέσω MAKEFLAGS ή αν ορίσετε στο MAKEFLAGS στο περιβάλλον σας.

ο -t η επιλογή αγγίζει τα αρχεία (τα σηματοδοτεί μέχρι σήμερα χωρίς να τα αλλάζει) αντί να εκτελούν τις εντολές τους. Αυτό χρησιμοποιείται για να προσποιηθεί ότι οι εντολές έγιναν, προκειμένου να ξεγελάσουν μελλοντικές επικλήσεις της μάρκας.

ο -v επιλογή εκτυπώνει την έκδοση του προγράμματος δημιουργίας συν ένα δικαίωμα πνευματικής ιδιοκτησίας, μια λίστα συγγραφέων και μια ειδοποίηση ότι δεν υπάρχει εγγύηση.

ο -w επιλογή εκτυπώνει ένα μήνυμα που περιέχει τον κατάλογο εργασίας πριν και μετά από άλλη επεξεργασία. Αυτό μπορεί να είναι χρήσιμο για την ανίχνευση σφαλμάτων από περίπλοκες φωλιές ανακυκλούμενης μάρκας εντολές.

ο -W αρχείο επιλογή προσποιείται ότι ο στόχος αρχείο έχει μόλις τροποποιηθεί. Όταν χρησιμοποιείται με το σημαία, αυτό σας δείχνει τι θα συνέβαινε εάν επρόκειτο να τροποποιήσετε αυτό το αρχείο. Χωρίς, είναι σχεδόν το ίδιο με το τρέξιμο aαφή εντολή στο συγκεκριμένο αρχείο πριν από την εκτέλεση του make, εκτός από το ότι ο χρόνος τροποποίησης αλλάζει μόνο στη φαντασία του make.