Τα τρία μέρη είναι:
* Αρχιτεκτονική (ή στόχος): Αυτό καθορίζει την αρχιτεκτονική του επεξεργαστή (π.χ., x86_64, ARMV7, AARCH64, RISCV64). Υπαγορεύει τη ρύθμιση της εντολής που θα χρησιμοποιήσει ο κώδικας που έχει χρησιμοποιηθεί.
* Λειτουργικό σύστημα (ή προμηθευτής): Αυτό προσδιορίζει το λειτουργικό σύστημα (π.χ. Linux, Windows, MacOS, FreeBSD). Αυτό επηρεάζει τον τρόπο με τον οποίο το πρόγραμμα αλληλεπιδρά με τους πόρους του συστήματος (αρχεία, μνήμη κ.λπ.).
* C ++ Standard Library (ή ABI): Αυτό καθορίζει την εφαρμογή της τυποποιημένης βιβλιοθήκης C ++ (π.χ. Libstdc ++ για το GCC, LIBC ++ για το clang). Καθορίζει το ABI (Binary Application Binary Interface), η οποία κυβερνά τον τρόπο με τον οποίο αλληλεπιδρούν ο κώδικας με την τυποποιημένη βιβλιοθήκη. Διαφορετικές εφαρμογές μπορεί να έχουν ασυμβίβαστη ABIS, ακόμη και στην ίδια αρχιτεκτονική και λειτουργικό σύστημα.
Παράδειγμα:
`x86_64-linux-gnu '
* x86_64: Αρχιτεκτονική X86 64-bit.
* Linux: Λειτουργικό σύστημα Linux.
* gnu: GNU C ++ Standard Library (Libstdc ++)
Ένα άλλο παράδειγμα:
`aarch64-apple-darwin '
* aarch64: Αρχιτεκτονική βραχίονα 64-bit.
* Apple: Το λειτουργικό σύστημα της Apple.
* Darwin: Ο πυρήνας των λειτουργικών συστημάτων της Apple (MacOS, iOS κ.λπ.). Αυτό συχνά συνεπάγεται μια συγκεκριμένη εφαρμογή C ++ Standard Library που χρησιμοποιείται από τον μεταγλωττιστή της Apple.
Το Triple επιτρέπει στη δημιουργία συστημάτων δημιουργίας σωστών εντολών μεταγλωττιστή και συνδετήρα για το καθορισμένο περιβάλλον προορισμού. Εάν καταρτίσετε τον κωδικό χωρίς να εξετάσετε το τριπλό, το προκύπτον εκτελέσιμο μπορεί να μην εκτελεστεί στο επιδιωκόμενο σύστημα. Η διασταύρωση βασίζεται σε μεγάλο βαθμό στη σωστή τριπλή προδιαγραφή για την κατασκευή κώδικα για διαφορετικό στόχο από το μηχάνημα κατασκευής.
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα