Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym samouczku pokazano, jak utworzyć program "Hello World" języka C++, który korzysta z biblioteki za pomocą fmt narzędzia CMake, programu vcpkg i programu Visual Studio. Zainstalujesz zależności, skonfigurujesz, skompilujesz i uruchomisz prostą aplikację.
Wymagania wstępne
- Program Visual Studio z pakietem roboczym programowania w języku C++ i składnikiem CMake
- Usługa Git
1 — Konfigurowanie programu vcpkg
Klonowanie repozytorium
Pierwszym krokiem jest sklonowanie repozytorium vcpkg z usługi GitHub. Repozytorium zawiera skrypty w celu uzyskania pliku wykonywalnego vcpkg i rejestru wyselekcjonowanych bibliotek open source obsługiwanych przez społeczność programu vcpkg. Aby to zrobić, uruchom polecenie:
git clone https://github.com/microsoft/vcpkg.gitRejestr wyselekcjonowanych vcpkg to zestaw ponad 2000 bibliotek typu open source. Te biblioteki zostały zweryfikowane przez potoki ciągłej integracji vcpkg do współpracy. Chociaż repozytorium vcpkg nie zawiera kodu źródłowego dla tych bibliotek, przechowuje przepisy i metadane do kompilowania i instalowania ich w systemie.
Uruchamianie skryptu bootstrap
Po sklonowaniu repozytorium vcpkg przejdź do
vcpkgkatalogu i wykonaj skrypt bootstrap:cd vcpkg && bootstrap-vcpkg.batcd vcpkg; .\bootstrap-vcpkg.batcd vcpkg && ./bootstrap-vcpkg.shSkrypt bootstrap wykonuje testy wymagań wstępnych i pobiera plik wykonywalny vcpkg.
I już! Narzędzie vcpkg jest skonfigurowane i gotowe do użycia.
2 — Konfigurowanie projektu programu Visual Studio
Tworzenie projektu programu Visual Studio
- Tworzenie nowego projektu w programie Visual Studio przy użyciu szablonu "Projekt CMake"
Zrzut ekranu przedstawiający interfejs użytkownika programu Visual Studio przedstawiający sposób tworzenia nowego projektu CMake w programie Visual Studio
- Nadaj projektowi nazwę "helloworld"
- Zaznacz pole wyboru "Umieść rozwiązanie i projekt w tym samym katalogu".
- Kliknij przycisk "Utwórz"
Zrzut ekranu przedstawiający interfejs użytkownika programu Visual Studio na potrzeby nazewnictwa projektu CMake i kliknięcia przycisku "utwórz".
Skonfiguruj zmienną
VCPKG_ROOTśrodowiskową.Uwaga
Ustawienie zmiennych środowiskowych w ten sposób wpływa tylko na bieżącą sesję terminalu. Aby wprowadzić te zmiany na stałe we wszystkich sesjach, ustaw je za pomocą panelu Zmienne środowiskowe systemu Windows.
Otwórz wbudowane okno programu PowerShell dla deweloperów w programie Visual Studio.
Zrzut ekranu przedstawiający interfejs użytkownika programu Visual Studio dla wbudowanego okna dewelopera programu PowerShell
Uruchom następujące polecenia:
$env:VCPKG_ROOT="C:\path\to\vcpkg" $env:PATH="$env:VCPKG_ROOT;$env:PATH"
Zrzut ekranu przedstawiający interfejs użytkownika programu Visual Studio dla wbudowanego okna dewelopera programu PowerShell pokazujący sposób konfigurowania VCPKG_ROOT i dodawania go do ścieżki.
Otwórz wiersz polecenia Deweloper w programie Visual Studio.
Zrzut ekranu przedstawiający interfejs użytkownika programu Visual Studio dla dewelopera wiersza polecenia.
Uruchom następujące polecenia:
set "VCPKG_ROOT=C:\path\to\vcpkg" set PATH=%VCPKG_ROOT%;%PATH%
Zrzut ekranu przedstawiający wiersz polecenia dla deweloperów programu Visual Studio przedstawiający sposób konfigurowania VCPKG_ROOT i dodawania go do ścieżki.
Ustawienie
VCPKG_ROOTpomaga programowi Visual Studio zlokalizować wystąpienie programu vcpkg. Dodanie go w celuPATHzapewnia, że można uruchamiać polecenia vcpkg bezpośrednio z poziomu powłoki.Wygeneruj plik manifestu i dodaj zależności.
Uruchom następujące polecenie, aby utworzyć plik manifestu vcpkg (
vcpkg.json):vcpkg new --applicationPolecenie
vcpkg newdodajevcpkg.jsonplik ivcpkg-configuration.jsonplik w katalogu projektu.fmtDodaj pakiet jako zależność:vcpkg add port fmtTwoje
vcpkg.jsonpowinny teraz zawierać:{ "dependencies": [ "fmt" ] }Jest to plik manifestu. Narzędzie vcpkg odczytuje plik manifestu, aby dowiedzieć się, jakie zależności mają być instalowane i integrowane z programem CMake w celu zapewnienia zależności wymaganych przez projekt.
Wygenerowany
vcpkg-configuration.jsonplik wprowadza plan bazowy , który nakłada minimalne ograniczenia wersji na zależności projektu. Modyfikowanie tego pliku wykracza poza zakres tego samouczka. Chociaż nie ma zastosowania w tym samouczku, dobrym rozwiązaniem jest zachowanievcpkg-configuration.jsonkontroli nad plikiem w celu zapewnienia spójności wersji w różnych środowiskach deweloperskich.
3 — Konfigurowanie plików projektu
Zmodyfikuj plik
helloworld.cpp.Zastąp zawartość
helloworld.cppnastępującym kodem:#include <fmt/core.h> int main() { fmt::print("Hello World!\n"); return 0; }Ten plik źródłowy zawiera
<fmt/core.h>nagłówek, który jest częściąfmtbiblioteki. Funkcjamain()wywołujefmt::print()komunikat "Hello World!" do konsoli.CMakePresets.jsonSkonfiguruj plik.Narzędzie CMake może automatycznie łączyć biblioteki zainstalowane przez narzędzie vcpkg, gdy
CMAKE_TOOLCHAIN_FILEjest ustawione na użycie niestandardowego łańcucha narzędzi vcpkg. Może to być skompilowane przy użyciu plików ustawień wstępnych narzędzia CMake.Zmodyfikuj
CMakePresets.json, aby dopasować zawartość poniżej:{ "version": 2, "configurePresets": [ { "name": "vcpkg", "generator": "Ninja", "binaryDir": "${sourceDir}/build", "cacheVariables": { "CMAKE_TOOLCHAIN_FILE": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake" } } ] }Utwórz
CMakeUserPresets.jsonz następującą zawartością:{ "version": 2, "configurePresets": [ { "name": "default", "inherits": "vcpkg", "environment": { "VCPKG_ROOT": "<path to vcpkg>" } } ] }Plik
CMakePresets.jsonzawiera jedno ustawienie wstępne o nazwie "vcpkg", które ustawia zmiennąCMAKE_TOOLCHAIN_FILE. PlikCMakeUserPresets.jsonustawia zmiennąVCPKG_ROOTśrodowiskową, aby wskazywała ścieżkę bezwzględną zawierającą lokalną instalację programu vcpkg. Zaleca się, aby nie zaewidencjonowaćCMakeUserPresets.jsonsystemów kontroli wersji.Edytuj plik
CMakeLists.txt.Zastąp zawartość pliku
CMakeLists.txtnastępującym kodem:cmake_minimum_required(VERSION 3.10) project(HelloWorld) find_package(fmt CONFIG REQUIRED) add_executable(HelloWorld helloworld.cpp) target_link_libraries(HelloWorld PRIVATE fmt::fmt)Teraz podzielmy działanie każdego wiersza w
CMakeLists.txtpliku:-
cmake_minimum_required(VERSION 3.10): określa, że minimalna wersja narzędzia CMake wymagana do skompilowania projektu to 3.10. Jeśli wersja narzędzia CMake zainstalowana w systemie jest niższa niż ta, kompilacja zakończy się niepowodzeniem. -
project(HelloWorld): Ustawia nazwę projektu na "HelloWorld". -
find_package(fmt CONFIG REQUIRED): szukafmtbiblioteki przy użyciu pliku konfiguracji narzędzia CMake. SłowoREQUIREDkluczowe gwarantuje wygenerowanie błędu, jeśli pakiet nie zostanie znaleziony. -
add_executable(HelloWorld helloworld.cpp): dodaje element docelowy wykonywalny o nazwie "HelloWorld", skompilowany z plikuhelloworld.cppźródłowego . -
target_link_libraries(HelloWorld PRIVATE fmt::fmt): określa, żeHelloWorldplik wykonywalny powinien łączyć się z bibliotekąfmt. SłowoPRIVATEkluczowe wskazuje, żefmtjest wymagane tylko do kompilowaniaHelloWorldi nie powinno być propagowane do innych projektów zależnych.
-
4 — Kompilowanie i uruchamianie projektu
Skompiluj projekt.
Zbuduj projekt przy użyciu opcji
Build > Build Allz górnego menu.Uruchom aplikację.
Na koniec uruchom plik wykonywalny:
Zrzut ekranu przedstawiający interfejs użytkownika programu Visual Studio na potrzeby uruchamiania pliku wykonywalnego.
Powinny zostać wyświetlone dane wyjściowe:
Zrzut ekranu przedstawiający dane wyjściowe programu — "Hello World!"
Następne kroki
Aby dowiedzieć się więcej na temat vcpkg.jsonusługi , zobacz dokumentację referencyjną: