Δημιουργία και εκτέλεση αρχείου Linux “.a”.

Demiourgia Kai Ektelese Archeiou Linux A



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

Η κατανόηση του τρόπου δημιουργίας και εκτέλεσης ενός αρχείου «.a» είναι ζωτικής σημασίας για την αποτελεσματική ανάπτυξη λογισμικού στο περιβάλλον Linux. Αυτός είναι ένας περιεκτικός τρόπος για την εγκατάσταση και τη ρύθμιση παραμέτρων ενός αρχείου Linux '.a'. Ας ανακαλύψουμε τι είναι το αρχείο Linux '.a', εξερευνούμε τον σκοπό, τη δομή και πώς μπορεί να δημιουργηθεί και να εκτελεστεί.

Τι είναι ένα αρχείο '.a' στο Linux;

Ένα αρχείο Linux '.a' είναι ένα αρχείο αρχειοθέτησης που χρησιμεύει ως κοντέινερ για έναν μεταγλωττισμένο κώδικα και δεδομένα. Είναι κοινώς γνωστή ως στατική βιβλιοθήκη που περιέχει κώδικες που συνδέονται με τον κωδικό κλήσης κατά το χρόνο μεταγλώττισης, ο οποίος γίνεται θεμελιώδες μέρος της εφαρμογής. Αυτά τα αρχεία Linux '.a' παρέχουν μια προμεταγλωττισμένη, θεμελιώδη συνεισφορά στην εφαρμογή, σε πλήρη αντίθεση με τα αρχεία δυναμικών βιβλιοθηκών Linux '.so' όπου η σύνδεση πραγματοποιείται κατά το χρόνο εκτέλεσης.







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



Προαπαιτούμενα:

Πριν προχωρήσετε στο να μάθετε πώς να δημιουργείτε και να τρέχετε ένα αρχείο '.a' στο Linux, είναι σημαντικό να γνωρίζετε μερικά βασικά πράγματα. Υπάρχουν μερικές προϋποθέσεις που πρέπει να διασφαλιστούν πριν από την εκτέλεση μιας λειτουργίας στο Linux. Είναι οι εξής:



  • Ubuntu 20.04 ή οποιαδήποτε τελευταία έκδοση
  • Πρόσβαση σε γραμμή εντολών ή παράθυρο τερματικού
  • Ένας λογαριασμός χρήστη, συγκεκριμένα δικαιώματα sudo, για διάφορα αρχεία και καταλόγους

Πώς δημιουργείτε και εκτελείτε ένα αρχείο Linux '.a';

Η δημιουργία και η εκτέλεση ενός αρχείου Linux '.a' περιλαμβάνει μια σειρά βημάτων: δημιουργία, μεταγλώττιση και εκτέλεση. Μπορούν να χρησιμοποιηθούν διαφορετικοί τρόποι για την εκτέλεση αυτών των ενεργειών και θα εξερευνήσουμε καθεμία από αυτές ξεχωριστά. Ας αρχίσουμε.





Χρειάζεστε έναν μεταγλωττιστή GCC για να εκτελέσετε και να εκτελέσετε το ακόλουθο παράδειγμα. Ο μεταγλωττιστής χρησιμοποιείται για την εκτέλεση όλων των εντολών για τη δημιουργία και εκτέλεση του αρχείου Linux '.a':



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

Βήμα 1: Μεταγλώττιση ενός αρχείου προέλευσης C

Ξεκινήστε την εργασία δημιουργώντας ένα αρχείο προέλευσης του C χρησιμοποιώντας έναν μεταγλωττιστή GCC για να μεταγλωττίσετε τα αρχεία προέλευσης C (.c) σε αρχεία αντικειμένων (.o) με την ακόλουθη εντολή:

$ gcc -Τείχος -ντο * .ντο

Η σημαία '-Wall' ενεργοποιεί όλες τις προειδοποιήσεις και η σημαία '-c' λέει στο GCC μόνο να μεταγλωττίσει, όχι να συνδέσει, σε αυτό το σημείο.

Βήμα 2: Δημιουργήστε το Αρχείο Βιβλιοθήκης

Το επόμενο βήμα είναι να δημιουργήσετε το αρχείο της βιβλιοθήκης. Η εντολή 'ar' δημιουργεί το αρχείο στατικής βιβλιοθήκης (.a) από τα αρχεία αντικειμένων. Ως εκ τούτου, χρησιμοποιούμε την ακόλουθη εντολή:

$ Με -cvq libfile.α *

Αυτή η εντολή δημιουργεί ένα στατικό αρχείο αρχειοθέτησης με το όνομα 'libfile.a' συνδυάζοντας διάφορα αρχεία αντικειμένων που έχουν επέκταση '.o' χρησιμοποιώντας την εντολή 'ar' (αρχειοθέτηση) στα λειτουργικά συστήματα Linux. Αυτή η εντολή έχει τρία πράγματα που πρέπει να προσέξετε: 'c', 'v' και 'q'. Ας αναλύσουμε τα στοιχεία και ας κατανοήσουμε τον σκοπό κάθε επισήμανσης και ορίσματος στο πλαίσιο αυτής της εντολής:

ar: Εκτελεί την εντολή αρχειοθέτησης στα συστήματα Linux. Η βασική λειτουργία της εντολής 'ar' είναι η δημιουργία, η τροποποίηση και η εξαγωγή από την αρχειοθέτηση.

-c: Αυτή η σημαία καθοδηγεί τη δημιουργία ενός νέου αρχείου εάν δεν έχει ήδη δημιουργηθεί ή δεν υπάρχει ακόμα. Εάν υπάρχει ένα αρχείο αρχειοθέτησης με το συγκεκριμένο όνομα, η σημαία '-c' διασφαλίζει ότι έχει αναδημιουργηθεί, αντικαθιστώντας οποιοδήποτε προηγούμενο περιεχόμενο.

-v: Η αναλυτική σημαία εμφανίζει λεπτομερείς πληροφορίες σχετικά με τη διαδικασία αρχειοθέτησης. Παρέχει μια ανατροφοδότηση σχετικά με τα αρχεία που προστίθενται στο αρχείο.

-q: Το 'q' σημαίνει 'γρήγορη προσθήκη'. Ζητάει από τη σημαία 'ar' να προσαρτήσει αμέσως τα καθορισμένα αρχεία στο αρχείο χωρίς να ελέγξει για διπλά σύμβολα ή χρονοβόρες λειτουργίες.

libfile.a: Το όνομα του αρχείου απαιτείται για την εντολή που θα δημιουργηθεί ή θα τροποποιηθεί. Εδώ, δίνουμε ένα όνομα αρχείου ως 'libfile' με την επέκταση '.a' που υποδηλώνει ότι πρόκειται για αρχείο αρχειοθέτησης στατικής βιβλιοθήκης.

*.o: Το '*' στο τέλος της εντολής αντιπροσωπεύει κάθε αρχείο στον επιλεγμένο κατάλογο με επέκταση '.o' που αναφέρεται στα αρχεία αντικειμένων. Τα αρχεία αντικειμένων είναι τα αποτελέσματα της μεταγλώττισης του πηγαίου κώδικα και περιέχουν έναν κώδικα μηχανής που δεν είναι ακόμη συνδεδεμένος με κάποιο τελικό εκτελέσιμο αρχείο.

Βήμα 3: Προβολή των Περιεχομένων της Βιβλιοθήκης

Τώρα που δημιουργήσαμε το αρχείο της βιβλιοθήκης, μπορούμε να το δούμε χρησιμοποιώντας την εντολή 'ar –t'. Η εντολή 'ar –t' παραθέτει όλα τα περιεχόμενα που υπάρχουν στη βιβλιοθήκη.

$ Με libfile.α

Η εντολή 'ar -t libfile.a' παραθέτει όλα τα αρχεία αντικειμένων που περιέχονται στο αρχείο αρχειοθέτησης στατικής βιβλιοθήκης με το όνομα 'libfile.a' χρησιμοποιώντας την εντολή 'ar' σε ένα λειτουργικό σύστημα Linux. Ας αναλύσουμε κάθε σημαία και τη λειτουργικότητά τους:

ar: Όπως αναφέρθηκε προηγουμένως, αυτή είναι η εντολή αρχειοθέτησης σε συστήματα Linux.

-t: Η σημαία '-t' χρησιμοποιείται για την εμφάνιση του πίνακα περιεχομένων του αρχείου, εμφανίζοντας τα ονόματα των αρχείων αντικειμένων που είναι αποθηκευμένα στο 'libfile.a'.

libfile.a: Για να διαβάσουμε τα δεδομένα, πρέπει να γνωρίζουμε το όνομα του αρχείου αρχειοθέτησης.

Βήμα 4: Χρήση της Βιβλιοθήκης σε άλλο πρόγραμμα

Ας δούμε τώρα πώς να χρησιμοποιήσετε το νέο αρχείο Linux '.a' που αναπτύχθηκε σε ένα διαφορετικό πρόγραμμα. Εφόσον δημιουργήσαμε μια βιβλιοθήκη, μπορεί πλέον να χρησιμοποιηθεί οπουδήποτε και σε οποιοδήποτε πρόγραμμα προσθέτοντας απλώς τη βιβλιοθήκη στην εντολή compile. Μπορούμε να το πετύχουμε με τη βοήθεια της επόμενης εντολής. Περιλαμβάνει όλες τις απαραίτητες κεφαλίδες και συνδέσμους της βιβλιοθήκης.

$ gcc MyProgramMain.c -ΜΕΓΑΛΟ μονοπάτι / προς την / lib είναι -αρχείο

Σε αυτήν την εντολή, το '-L' καθορίζει τη διαδρομή της βιβλιοθήκης, τους συνδέσμους '-file' έναντι του αρχείου 'library.a', αφαιρώντας το πρόθεμα 'lib' και το επίθημα '.a'.

Βήμα 5: Εκτελέστε ένα αρχείο Linux '.a'.

Τέλος, μπορούμε να τρέξουμε το αρχείο “.a”. Το αποτέλεσμα εμφανίζεται αμέσως μετά την εκτέλεση του παρακάτω σεναρίου στο τερματικό σας:

$ . / MyProgramMain

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

συμπέρασμα

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