Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Visual Studio 2022 wprowadza natywny zestaw narzędzi C++ do rozwoju Podsystem Windows dla systemu Linux w wersji 2 (WSL 2). Ten zestaw narzędzi jest teraz dostępny w wersji Visual Studio 2022 w wersji 17.0 lub nowszej.
WSL 2 to nowa, zalecana wersja Podsystem Windows dla systemu Linux (WSL). Zapewnia lepszą wydajność systemu plików systemu Linux, obsługę graficznego interfejsu użytkownika i pełną zgodność wywołań systemowych. Zestaw narzędzi WSL 2 w Visual Studio umożliwia użycie Visual Studio do kompilowania i debugowania kodu C++ w dystrybucjach WSL 2 bez dodawania połączenia SSH. Kod języka C++ można już kompilować i debugować w dystrybucjach WSL 1 przy użyciu natywnego zestawu narzędzi WSL 1 wprowadzonego w wersji 16.1 Visual Studio 2019.
Zestaw narzędzi WSL 2 Visual Studio obsługuje zarówno projekty oparte na CMake, jak i MSBuild dla systemu Linux. Zalecamy użycie CMake dla wszystkich działań związanych z programowaniem międzyplatformowym w języku C++ przy użyciu Visual Studio. Zalecamy narzędzie CMake, ponieważ kompiluje i debuguje ten sam projekt w systemach Windows, WSL i zdalnych.
Aby zapoznać się z prezentacją wideo z informacjami w tym temacie, zobacz Video: Debugowanie języka C++ przy użyciu dystrybucji WSL 2 i Visual Studio 2022.
Tło zestawu narzędzi programu WSL 2
Obsługa wielu platform w języku C++ w Visual Studio zakłada, że wszystkie pliki źródłowe pochodzą z systemu plików Windows. Podczas określania docelowej dystrybucji WSL 2 Visual Studio wykonuje lokalne polecenie rsync, aby skopiować pliki z systemu plików Windows do systemu plików WSL. Kopia lokalna rsync nie wymaga żadnej interwencji użytkownika. Występuje on automatycznie, gdy Visual Studio wykryje, że używasz dystrybucji WSL 2. Aby dowiedzieć się więcej o różnicach między WSL 1 i WSL 2, zobacz Porównanie WSL 1 i WSL 2.
Integracja cMake Presets w Visual Studio obsługuje zestaw narzędzi WSL 2. Aby dowiedzieć się więcej, zobacz Integrację CMake Presets w Visual Studio i Visual Studio Code oraz Konfiguracja i budowanie przy użyciu CMake Presets w Visual Studio. W tym artykule znajdują się również bardziej zaawansowane informacje w temacie Advanced WSL 2 and CMake projects considerations (Zagadnienia dotyczące zaawansowanych projektów WSL 2 i CMake).
Instalowanie narzędzi kompilacji
Zainstaluj narzędzia niezbędne do kompilowania i debugowania w programie WSL 2. Instalujesz jedną z nowszych wersji narzędzia CMake, korzystając z binarnego wdrożenia CMake w Visual Studio w późniejszym kroku.
Zainstaluj dystrybucję WSL i WSL 2, postępując zgodnie z instrukcjami w temacie Instalowanie programu WSL.
W instalatorze Visual Studio sprawdź, czy zainstalowano narzędzia CMake C++ dla systemu Linux. Aby to zrobić, wybierz Modify dla wersji Visual Studio. Na karcie Poszczególne składniki wyszukaj narzędzia CMake języka C++ dla systemów Linux i Mac i upewnij się, że zostały wybrane i zainstalowane. Ten składnik jest wymagany, aby Visual Studio mogło wykrywać instalacje WSL.
Zakładając, że twoja dystrybucja korzysta z
apt(w tym przewodniku używamy Ubuntu), wykonaj następujące polecenia, aby zainstalować wymagane narzędzia buildowe na dystrybucji WSL 2:sudo apt update sudo apt install cmake g++ gdb make ninja-build rsync zipCo instaluje:
- Kompilator języka C++
gdbCMakersynczip- Podstawowy generator systemu kompilacji
Międzyplatformowe rozwijanie z użyciem CMake w dystrybucji WSL 2
W tym przewodniku używane są biblioteki GCC i Ninja w systemie Ubuntu. Oraz Visual Studio 2022 w wersji 17.0 Preview 2 lub nowszej.
Visual Studio definiuje projekt CMake jako folder z plikiem CMakeLists.txt w katalogu głównym projektu. W tym przewodniku utworzysz nowy project CMake przy użyciu szablonu Visual Studio CMake Project:
Na ekranie Visual Studio Get started wybierz pozycję Utwórz nowy projekt.
Dostępne opcje to: Klonowanie repozytorium, Otwieranie projektu lub rozwiązania, Otwieranie folderu lokalnego, Tworzenie nowego projektu lub Kontynuuj bez kodu.":::W polu tekstowym Wyszukaj szablony wpisz "cmake". Wybierz typ CMake Project a następnie wybierz Dalej. Nadaj projektowi nazwę i lokalizację, a następnie wybierz pozycję Utwórz.
Włącz integrację Visual Studio CMake Presets. Wybierz Narzędzia>Opcje>CMake>Ogólne. Wybierz pozycję Preferuj używanie ustawień wstępnych narzędzia CMake do konfigurowania, kompilowania i testowania, a następnie wybierz przycisk OK. Alternatywnie można dodać
CMakePresets.jsonplik do katalogu głównego projektu. Aby uzyskać więcej informacji, zobacz Enable CMake Presets integration.
W grupie plików konfiguracji narzędzia CMake wyróżniona i zaznaczona jest opcja 'Użyj ustawień wstępnych CMake, jeśli są dostępne, w przeciwnym razie użyj CMakeSettings.json'.
Aby aktywować integrację: z menu głównego wybierz pozycję Plik>Zamknij folder. Zostanie wyświetlona strona Wprowadzenie . W obszarze Otwórz ostatnie wybierz właśnie zamknięty folder, aby ponownie otworzyć folder.
W głównym menu Visual Studio znajdują się trzy listy rozwijane. Użyj listy rozwijanej po lewej stronie, aby wybrać aktywny system docelowy. Jest to system, w którym wywoływano narzędzie CMake w celu skonfigurowania i skompilowania projektu. Visual Studio wykonuje zapytania dotyczące instalacji WSL z
wsl -l -v. Na poniższej ilustracji WSL2: Ubuntu-20.04 jest wyświetlany jako system docelowy.
Uwaga
Jeśli Visual Studio rozpocznie automatyczne konfigurowanie projektu, przeczytaj krok 11, aby zarządzać wdrożeniem binarnym narzędzia CMake, a następnie przejdź do następującego kroku. Aby dostosować to zachowanie, zobacz Modyfikację automatycznej konfiguracji oraz powiadomień pamięci podręcznej.
Użyj listy rozwijanej w środku, aby wybrać aktywne ustawienie wstępne. Konfiguracja ustawień wstępnych informuje Visual Studio, jak wywołać CMake i generować bazowy system kompilacji. W kroku 7 aktywne ustawienie wstępne to ustawienie linux-default, utworzone przez Visual Studio. Aby utworzyć niestandardową konfigurację ustawień wstępnych, wybierz pozycję Zarządzaj konfiguracjami... Aby uzyskać więcej informacji na temat konfigurowania ustawień wstępnych, zobacz Select a Configure Presets and Edit Presets (Wybieranie ustawień wstępnych konfiguracji i edytowanie ustawień wstępnych).
Użyj listy rozwijanej po prawej stronie, aby wybrać aktywne ustawienie wstępne kompilacji. Ustawienia wstępne kompilacji informują Visual Studio, jak wywoływać kompilację. Na ilustracji dla kroku 7 aktywne ustawienia wstępne kompilacji to domyślne ustawienia wstępne kompilacji utworzone przez Visual Studio. Aby uzyskać więcej informacji na temat ustawień wstępnych kompilacji, zobacz Wybieranie ustawienia wstępnego kompilacji.
Skonfiguruj projekt w programie WSL 2. Jeśli generowanie project nie zostanie uruchomione automatycznie, ręcznie wywołaj konfigurację przy użyciu Project>Configureproject-name
Jeśli nie masz obsługiwanej wersji narzędzia CMake zainstalowanej w dystrybucji WSL 2, Visual Studio monituje cię pod wstążką menu głównego, aby wdrożyć najnowszą wersję narzędzia CMake. Wybierz Tak, aby wdrożyć binaria CMake w dystrybucji WSL 2.
Użytkownik jest monitowany o zainstalowanie najnowszych plików binarnych C Make z C make . org, ponieważ nie jest zainstalowana obsługiwana wersja CMake.
Upewnij się, że krok konfigurowania został zakończony i że w oknie Dane wyjściowe w panelu CMake widnieje komunikat generacja CMake zakończona. Pliki kompilacji są zapisywane w katalogu w systemie plików dystrybucji WSL 2.
Wybierz aktywny cel debugowania. Menu rozwijane debugowania zawiera listę wszystkich obiektów docelowych narzędzia CMake dostępnych dla projektu.
Rozwiń podfolder projektu w Eksplorator rozwiązań. W pliku
CMakeProject.cppustaw punkt przerwania wmain(). Możesz również przejść do widoku obiektów docelowych narzędzia CMake, wybierając przycisk Selektor widoków w Eksplorator rozwiązań wyróżniony na poniższym zrzucie ekranu:
Wybierz pozycję Rozpocznij debugowanie>lub naciśnij F5. Twój projekt jest budowany, plik wykonywalny uruchamia się na Twojej dystrybucji WSL 2, a Visual Studio zatrzymuje wykonywanie na punkcie przerwania. Dane wyjściowe programu (w tym przypadku
"Hello CMake.") są widoczne w oknie konsoli systemu Linux:
W oknie Visual Studio konsoli systemu Linux zostaną wyświetlone dane wyjściowe programu: "Hello C Make". W oknie edytora jest wyświetlany program hello world. Wykonanie zatrzymało się w punkcie przerwania w wierszu, który mówi, że zwraca wartość 0;"
Teraz zbudowałeś i zdebugowałeś aplikację C++ przy użyciu WSL 2 i Visual Studio 2022.
Zagadnienia dotyczące zaawansowanych projektów WSL 2 i CMake
Visual Studio zapewnia natywną obsługę WSL 2 dla projektów CMake korzystających z CMakePresets.json jako aktywnego pliku konfiguracji. Aby przeprowadzić migrację z CMakeSettings.json do CMakePresets.json, zobacz Włączenie ustawień wstępnych CMake w Visual Studio.
Jeśli celujesz w dystrybucję WSL 2 i nie chcesz używać zestawu narzędzi WSL 2, to w mapie dostawcy ustawień zdalnych Visual Studio w CMakePresets.json ustaw parametr forceWSL1Toolset na true. Aby uzyskać więcej informacji, zobacz Mapa dostawców ustawień zdalnych Visual Studio.
Jeśli forceWSL1Tooslet jest ustawiona na true, Visual Studio nie przechowuje kopii plików źródłowych w systemie plików WSL. Zamiast tego uzyskuje dostęp do plików źródłowych na zainstalowanym dysku Windows (/mnt/...).
W większości przypadków najlepszym rozwiązaniem jest użycie zestawu narzędzi WSL 2 z dystrybucjami WSL 2, ponieważ program WSL 2 jest wolniejszy, gdy pliki projektu są przechowywane w systemie plików Windows. Aby dowiedzieć się więcej o wydajności systemu plików w programie WSL 2, zobacz Porównanie systemów WSL 1 i WSL 2.
Określ ustawienia zaawansowane, takie jak ścieżka do katalogu w programie WSL 2, w którym projekt jest kopiowany, opcje źródła kopiowania i argumenty poleceń rsync, na mapie dostawcy ustawień zdalnych Visual Studio w CMakePresets.json. Aby uzyskać więcej informacji, zobacz mapę dostawcy ustawień zdalnych Visual Studio.
Nagłówki systemowe są nadal automatycznie kopiowane do systemu plików Windows, aby zapewnić natywne doświadczenie IntelliSense. Możesz dostosować nagłówki, które są dołączone lub wykluczone z tej kopii, na mapie dostawcy ustawień zdalnych Visual Studio w CMakePresets.json.
Możesz zmienić tryb IntelliSense lub określić inne opcje funkcji IntelliSense na mapie dostawcy ustawień Visual Studio w CMakePresets.json. Aby uzyskać szczegółowe informacje na temat mapy dostawcy, zobacz mapę dostawcy ustawień zdalnych w Visual Studio.
Projekty WSL 2 i projekty MSBuild na Linuxie
Narzędzie CMake jest zalecane w przypadku wszystkich programowania międzyplatformowego języka C++ z Visual Studio, ponieważ umożliwia kompilowanie i debugowanie tego samego projektu w systemach Windows, WSL i zdalnych.
Być może jednak masz projekt systemu Linux oparty na programie MSBuild.
Jeśli masz projekt systemu Linux oparty na programie MSBuild, możesz przeprowadzić uaktualnienie do zestawu narzędzi WSL 2 w Visual Studio. Kliknij prawym przyciskiem myszy projekt w Eksploratorze rozwiązań, a następnie wybierz pozycję Właściwości>Ogólne>Zestaw narzędzi platformy:
Jeśli celujesz w dystrybucję WSL 2 i nie chcesz używać zestawu narzędzi dla WSL 2, w rozwijanym menu Platform Toolset wybierz zestaw narzędzi GCC dla Podsystem Windows dla systemu Linux lub Clang dla Podsystem Windows dla systemu Linux. Jeśli wybrano jeden z tych zestawów narzędzi, Visual Studio nie przechowuje kopii plików źródłowych w systemie plików WSL i zamiast tego uzyskuje dostęp do plików źródłowych na zainstalowanym dysku Windows (/mnt/...). Nagłówki systemowe są nadal automatycznie kopiowane do systemu plików Windows, aby zapewnić natywne środowisko IntelliSense. Dostosuj nagłówki, które są dołączone lub wykluczone z tej kopii w Strony właściwości>Ogólne.
W większości przypadków najlepszym rozwiązaniem jest użycie zestawu narzędzi WSL 2 z dystrybucjami WSL 2, ponieważ program WSL 2 działa wolniej, gdy pliki projektu są przechowywane w systemie plików Windows. Aby dowiedzieć się więcej, zobacz Porównanie usług WSL 1 i WSL 2.
Zobacz też
Video: Debugowanie języka C++ przy użyciu dystrybucji WSL 2 i Visual Studio 2022
Pobierz Visual Studio 2022
Tworzenie projektu CMake Linux w Visual Studio
Tutorial: Debugowanie projektu CMake na zdalnej maszynie Windows