Πώς να: Στατικά συνδέστε τις βιβλιοθήκες C ++ με το vcpkg + Visual Studio 2019

Η ενασχόληση με τις βιβλιοθήκες C ++ και η στατική σύνδεση τους με το έργο σας μπορεί να είναι ένας απόλυτος πόνος για να κάνετε χειροκίνητα. Ευτυχώς υπάρχουν διαχειριστές πακέτων όπως το vcpkg που μπορούν να κάνουν τη λήψη και τη διαχείριση των εξαρτήσεων του C ++ πολύ πιο εύκολη. Δυστυχώς, (ή ευτυχώς ανάλογα με την άποψή σας) τα εργαλεία vcpkg χρησιμοποιούν δυναμική σύνδεση από το κουτί, αλλά η στατική σύνδεση των βιβλιοθηκών σας απαιτεί κάποια εργασία στο πόδι. Πέρασα πολύ πόνο για να καταλάβω πώς να συνδέω στατικά πακέτα με vcpkg και Visual Studio, γι 'αυτό γράφω αυτό το σεμινάριο έτσι δεν χρειάζεται να περάσετε από αυτό που έκανα. Σε αυτό το σεμινάριο θα σας δείξω πώς να ρυθμίσετε το vcpkg και να το ενσωματώσετε στο έργο Visual Studio C ++. Τέλος, θα περάσω από το πώς να ρυθμίσετε το Visual Studio για να χρησιμοποιήσετε τις στατικές βιβλιοθήκες που κατεβάσαμε από το vcpkg, έτσι σας επιτρέπει να ξεκινήσετε!

0. Εγκατάσταση και ρύθμιση VCPKG

Για να ξεκινήσετε, βεβαιωθείτε ότι έχετε εγκαταστήσει το git και το Visual Studio 2019 στο μηχάνημά σας. Εδώ μπορείτε να κατεβάσετε το git και το Visual Studio.

Στη συνέχεια θα κατεβάσετε vcpkg. Για να το κάνετε αυτό, θα χρειαστεί να επισκεφθείτε το χώρο αποθήκευσης vcpkg GitHub εδώ. Κάποτε, κάντε κλικ στο πράσινο κουμπί "Κλώνος ή λήψη" και αντιγράψτε τον σύνδεσμο που εμφανίζεται.

GitHub vcpkg

Τώρα επιστρέψτε στην επιφάνεια εργασίας και πληκτρολογήστε:

Κλειδί Windows + R

και στο παράθυρο διαλόγου εισαγάγετε:

cmd

Η γραμμή εντολών των Windows θα φορτωθεί και θα πρέπει να δείτε κάτι παρόμοιο:

Γραμμή εντολών των Windows

Στη γραμμή εντολών πληκτρολογήστε τον git κλώνο και τον σύνδεσμο GitHub που αντιγράψατε προηγουμένως και πατήστε enter:

> git clone https://github.com/microsoft/vcpkg.git

Η παραγωγή σας θα πρέπει να έχει την εξής μορφή:

Αποτέλεσμα μετά την κλωνοποίηση vcpkg

Τώρα έχετε κατεβάσει με επιτυχία vcpkg! Έτσι τώρα μπορείτε να το εγκαταστήσετε και να κάνετε λήψη ορισμένων πακέτων!

Στη γραμμή εντολών πηγαίνετε στον κατάλογο vcpkg:

> cd vcpkg

Στη συνέχεια, για να εγκαταστήσετε το enter:

> bootstrap-vcpkg.bat

Η παραγωγή σας θα πρέπει να έχει την εξής μορφή:

Εγκαταστήστε vcpkg

Στη συνέχεια θέλουμε να ενσωματώσουμε το vcpkg με την εγκατάσταση του Visual Studio έτσι ώστε να το κάνουμε ό, τι πρέπει να κάνετε είναι να εισάγετε:

> vcpkg ενσωμάτωση εγκατάστασης

Η έξοδος σας θα μοιάζει με αυτό:

Ενσωματώστε το vcpkg με το Visual Studio

Μην ενοχλείτε ότι είμαι τώρα σε ένα φάκελο που ονομάζεται "Έργα" καθώς είχα μια προηγούμενη εγκατάσταση του vcpkg.

1. Λήψη εξαρτήσεων

Έχετε κάνει μεγάλη μέχρι στιγμής έτσι σας επιτρέπει να εγκαταστήσετε κάποια πακέτα!

Για να αναζητήσετε πακέτα για λήψη, πληκτρολογήστε:

> αναζήτηση vcpkg 

Για παράδειγμα, επιτρέπει την αναζήτηση για τη βιβλιοθήκη spdlog:

vcpkg αναζήτηση spdlog

Βρήκαμε το πακέτο spdlog! Τώρα μπορείτε να το κατεβάσετε.

Υπάρχουν δύο τρόποι για να το κάνετε αυτό. Αν θέλετε να κάνετε λήψη του πακέτου και να το χρησιμοποιήσετε με δυναμική σύνδεση, πρέπει να πληκτρολογήσετε: vcpkg install spdlog. Αλλά δεν θέλουμε να το κάνουμε αυτό επειδή θέλουμε να κατεβάσουμε τις στατικές βιβλιοθήκες για την επιθυμητή μας πλατφόρμα. Σε αυτό το παράδειγμα θα κατεβάσουμε το spdlog για την πλατφόρμα Windows x64.

Για να το κάνετε αυτό εισάγετε:

> vcpkg εγκαταστήστε το spdlog: x64-windows-static

Θα πρέπει να δείτε την ακόλουθη έξοδο:

Εγκατάσταση στατικών βιβλιοθηκών spdlog

Τώρα έχουμε κατεβάσει τη βιβλιοθήκη μας έτσι σας επιτρέπει να διαμορφώσετε το Visual Studio για να το χρησιμοποιήσετε!

2. Ρύθμιση του Visual Studio

Αρχικά, ανοίξτε το Visual Studio 2019 και κάντε κλικ στο "Δημιουργία νέου έργου".

Visual Studio 2019

Επιλέξτε "εφαρμογή Console":

Δημιουργήστε ένα νέο έργο

Καταχωρίστε το όνομα του έργου σας και πατήστε το κουμπί "Δημιουργία".

Ρυθμίστε το έργο σας

Τώρα εδώ ξεκινάει η διασκέδαση.

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

Για να το κάνετε αυτό, αλλάξτε το αναπτυσσόμενο μενού στο επάνω μέρος της οθόνης από x86 σε x64, ώστε να μοιάζει με αυτό:

Debug x64

Στη συνέχεια, μεταβείτε στο Explorer Solution και κάντε κλικ στο εικονίδιο "Προβολή φακέλου" και επιλέξτε την επιλογή "Προβολή φακέλου"

Εικονίδιο προβολής φακέλων

Θα πρέπει να δείτε τα αρχεία λύσεων των έργων σας:

Προβολή φακέλου έργου

Κάντε κλικ στο αρχείο .vcxproj στη λίστα. Θα εμφανιστεί ένα έγγραφο xml. Κάντε κύλιση προς τα κάτω μέχρι να δείτε το ετικέτα.

Ομάδες ιδιοκτησίας παγκοσμίως

Στο κάτω μέρος προσθέστε την ακόλουθη γραμμή:

 x64-παράθυρα-στατικά 

Αυτό θα φαίνεται διαφορετικά ανάλογα με την πλατφόρμα που αποφασίζετε να χρησιμοποιήσετε για παράδειγμα αν χρησιμοποιείτε win32 x86 εφαρμογή που θα θέσαμε:

 x86-παράθυρα-στατικά 

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

Αποθηκεύστε τις αλλαγές σας και κάντε ξανά κλικ στο εικονίδιο "Προβολή φακέλου" και επιλέξτε .sln στην περίπτωσή μου το DemoStaticLinking.sln. Αυτό θα δείτε ως αποτέλεσμα:

Αποτέλεσμα μετά από κλικ στο εικονίδιο

Πρέπει να φορτώσετε ξανά το έργο σας, έτσι αριστερό κλικ στο πρώτο στοιχείο επιλέξτε "Load All Projects" και κάντε κλικ στο κουμπί ναι μέχρι να επιστρέψετε στο κύριο έργο σας.

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

Κάντε αριστερό κλικ στην λύση του έργου σας και επιλέξτε ιδιότητες στο κάτω μέρος ή πατήστε

Alt + Enter

Μόλις εμφανιστεί το παράθυρο διαλόγου που θέλετε να μεταβείτε στο C / C ++> Generation Code:

Ιδιότητες

Εάν βλέπετε "Διαμόρφωση: Απελευθέρωση" στην κορυφή, αλλάξτε την ιδιότητα "Βιβλιοθήκη εκτέλεσης" σε "Πολλαπλών νημάτων (/ MT)":

Κάντε κλικ στο κουμπί Hit. Στη συνέχεια, αλλάξτε τη "Διαμόρφωση: Απελευθέρωση" σε "Διαμόρφωση: Debug" και αλλάξτε τη βιβλιοθήκη C Runtime σε "Multi-threaded Debug (/ MTd)

Σε αυτό το σημείο είμαστε τελειωμένοι! Τώρα μπορούμε να χρησιμοποιήσουμε τις στατικές βιβλιοθήκες vcpkg και να τις συντάξουμε!

Στο κύριο αρχείο cpp (το δικό μου είναι DemoStaticLinking.cpp) προσθέστε τα εξής:

Κάντε κλικ στο πράσινο τρίγωνο στο επάνω μέρος με την ένδειξη "Τοπικός εντοπισμός σφαλμάτων των Windows" για να εκτελέσετε το έργο και θα πρέπει να λάβετε αυτήν την έξοδο:

Τελική έξοδος

Τα κατάφερες! Έχετε ενσωματώσει με επιτυχία το vcpkg με το Visual Studio και έχετε διαμορφώσει το έργο του Visual Studio για να συνδέσετε τις στατικές βιβλιοθήκες! Τώρα θα πρέπει να είναι ευκολότερο από ποτέ να εγκαταστήσετε βιβλιοθήκες C ++ και να τους συνδέσετε στατικά με τα έργα σας. Ελπίζω ότι αυτό το σεμινάριο ήταν χρήσιμο για τον εξορθολογισμό της ροής εργασιών ανάπτυξης C ++. Ευτυχισμένη κωδικοποίηση! :)