Konfigurowanie projektu MSBuild C++ dla systemu Linux w programie Visual Studio

Obsługa systemu Linux jest dostępna w programie Visual Studio 2017 lub nowszym.

W tym temacie opisano sposób konfigurowania projektu systemu Linux opartego na programie MSBuild zgodnie z opisem w temacie Tworzenie projektu MSBuild C++ w programie Visual Studio. W przypadku projektów CMake systemu Linux zobacz Konfigurowanie projektu CMake systemu Linux.

Projekt systemu Linux można skonfigurować tak, aby był przeznaczony dla fizycznej maszyny z systemem Linux, maszyny wirtualnej lub Podsystem Windows dla systemu Linux (WSL).

Program Visual Studio 2019 w wersji 16.1 lub nowszej:

  • W przypadku docelowego programu WSL można uniknąć operacji kopiowania potrzebnych do skompilowania i pobrania funkcji IntelliSense, które są wymagane w przypadku korzystania ze zdalnego systemu Linux.

  • Możesz określić oddzielne elementy docelowe systemu Linux na potrzeby kompilowania i debugowania.

Ustawienia ogólne

Aby wyświetlić opcje konfiguracji, wybierz menu Właściwości projektu > lub kliknij prawym przyciskiem myszy projekt w Eksplorator rozwiązań i wybierz polecenie Właściwości z menu kontekstowego. Zostanie wyświetlone ustawienia Ogólne .

Zrzut ekranu przedstawiający okno dialogowe Strony właściwości Konfiguracja ogólna.

Domyślnie tworzony jest plik wykonywalny (out). Aby utworzyć bibliotekę statyczną lub dynamiczną albo użyć istniejącego pliku programu Make, użyj ustawienia Typ konfiguracji .

Jeśli tworzysz aplikację na potrzeby Podsystem Windows dla systemu Linux (WSL), proces kompilacji równoległej w programie WSL w wersji 1 jest ograniczony do 64 procesów kompilacji równoległej. Jest to zależne od ustawienia Maksymalne zadania kompilacji równoległej we właściwościach > konfiguracji C/C++ > Ogólne.

Niezależnie od używanej wersji programu WSL, jeśli zamierzasz używać więcej niż 64 równoległych procesów kompilacji, zalecamy kompilowanie za pomocą narzędzia Ninja — co zwykle będzie szybsze i bardziej niezawodne. Aby skompilować za pomocą narzędzia Ninja, użyj ustawienia Włącz kompilację przyrostowej we właściwościach > konfiguracji Ogólne.

Aby uzyskać więcej informacji na temat ustawień na stronach właściwości, zobacz Dokumentacja strony właściwości projektu systemu Linux.

Ustawienia zdalne

Aby zmienić ustawienia związane ze zdalnym komputerem z systemem Linux, skonfiguruj ustawienia zdalne, które są wyświetlane w obszarze Ogólne.

  • Aby określić zdalny docelowy komputer z systemem Linux, użyj wpisu Maszyna kompilacji zdalnej . Umożliwi to wybranie jednego z utworzonych wcześniej połączeń. Aby utworzyć nowy wpis, zobacz sekcję Łączenie z komputerem zdalnego z systemem Linux .

    Zrzut ekranu przedstawiający maszynę kompilacji zdalnej.

    Program Visual Studio 2019 w wersji 16.7 lub nowszej: aby kierować Podsystem Windows dla systemu Linux (WSL), ustaw listę rozwijaną Zestaw narzędzi platformy na GCC dla Podsystem Windows dla systemu Linux. Inne opcje zdalne znikną, a ścieżka do domyślnej powłoki WSL pojawi się w ich miejscu:

    Zrzut ekranu przedstawiający maszynę kompilacji programu WSL.

    Jeśli masz instalacje równoległe WSL, możesz w tym miejscu określić inną ścieżkę. Aby uzyskać więcej informacji na temat zarządzania wieloma dystrybucjami, zobacz Zarządzanie i konfigurowanie Podsystem Windows dla systemu Linux.

    Możesz określić inny element docelowy do debugowania na stronieDebugowaniewłaściwości> konfiguracji.

  • Katalog główny kompilacji zdalnej określa lokalizację katalogu głównego, w którym projekt jest zbudowany na zdalnym komputerze z systemem Linux. Ta wartość domyślna to ~/projects , chyba że zostanie zmieniona.

  • Katalog projektu kompilacji zdalnej jest miejscem, w którym ten konkretny projekt zostanie utworzony na zdalnym komputerze z systemem Linux. Ta wartość domyślna to $(RemoteRootDir)/$(ProjectName), która zostanie rozwinięta do katalogu o nazwie na podstawie bieżącego projektu w katalogu głównym ustawionym powyżej.

Uwaga

Aby zmienić domyślne kompilatory języka C i C++ lub konsolidatora i archiwum używanego do kompilowania projektu, użyj odpowiednich wpisów w sekcji Ogólne języka C/C++ > i sekcji Ogólne konsolidatora konsolidatora>. Można na przykład określić określoną wersję biblioteki GCC lub Clang. Aby uzyskać więcej informacji, zobacz Właściwości języka C/C++ (Linux C++) i Właściwości konsolidatora (Linux C++).

Kopiowanie źródeł (tylko systemy zdalne)

Uwaga

Ta sekcja nie ma zastosowania podczas określania wartości docelowej WSL.

Podczas kompilowania w systemach zdalnych pliki źródłowe na komputerze dewelopera są kopiowane na komputer z systemem Linux i tam skompilowane. Domyślnie wszystkie źródła w projekcie programu Visual Studio są kopiowane do lokalizacji ustawionych w powyższych ustawieniach. Można jednak również dodać dodatkowe źródła do listy lub całkowicie wyłączyć kopiowanie źródeł, co jest ustawieniem domyślnym dla projektu makefile.

  • Źródła do kopiowania określają, które źródła są kopiowane na komputer zdalny. Domyślnie plik @(SourcesToCopyRemotely) domyślnie jest domyślnie ustawiony na wszystkie pliki kodu źródłowego w projekcie, ale nie zawiera żadnych plików zasobów/zasobów, takich jak obrazy.

  • Źródła kopiowania można włączać i wyłączać, aby włączyć i wyłączyć kopiowanie plików źródłowych na komputer zdalny.

  • Dodatkowe źródła do kopiowania umożliwiają dodanie dodatkowych plików źródłowych, które zostaną skopiowane do systemu zdalnego. Można określić listę rozdzielaną średnikami lub użyć składni := w celu określenia nazwy lokalnej i zdalnej do użycia:

C:\Projects\ConsoleApplication1\MyFile.cpp:=~/projects/ConsoleApplication1/ADifferentName.cpp;C:\Projects\ConsoleApplication1\MyFile2.cpp:=~/projects/ConsoleApplication1/ADifferentName2.cpp;

Zdarzenia kompilacji

Ponieważ cała kompilacja odbywa się na komputerze zdalnym (lub WSL), kilka dodatkowych zdarzeń kompilacji zostało dodanych do sekcji Zdarzenia kompilacji we właściwościach projektu. Są to zdarzenia zdalnej kompilacji wstępnej, zdarzeń zdalnego łącza przed połączeniem i zdarzenia zdalnej po kompilacji i wystąpią na komputerze zdalnym przed lub po poszczególnych krokach w procesie.

Zrzut ekranu przedstawiający okno dialogowe Strony właściwości z wyświetlonymi zdarzeniami kompilacji.

Funkcja IntelliSense dla nagłówków w systemach zdalnych

Po dodaniu nowego połączenia w Menedżer połączeń program Visual Studio automatycznie wykrywa katalogi dołączania kompilatora w systemie zdalnym. Program Visual Studio następnie pakuje i kopiuje te pliki do katalogu na lokalnym komputerze z systemem Windows. Następnie zawsze, gdy używasz tego połączenia w projekcie programu Visual Studio lub CMake, nagłówki w tych katalogach są używane do zapewnienia funkcji IntelliSense.

Uwaga

W programie Visual Studio 2019 w wersji 16.5 lub nowszej zoptymalizowano zdalną kopię nagłówka. Nagłówki są teraz kopiowane na żądanie podczas otwierania projektu systemu Linux lub konfigurowania narzędzia CMake dla elementu docelowego systemu Linux. Kopia jest wykonywana w tle dla poszczególnych projektów na podstawie określonych kompilatorów projektu. Aby uzyskać więcej informacji, zobacz Ulepszenia dokładności i wydajności funkcji IntelliSense systemu Linux.

Ta funkcja zależy od zainstalowanego pliku zip na maszynie z systemem Linux. Plik zip można zainstalować przy użyciu tego polecenia apt-get:

sudo apt install zip

Aby zarządzać pamięcią podręczną nagłówków, przejdź do pozycji Narzędzia > Opcje, Międzyplatformowe > Menedżer połączeń > Menedżer funkcji IntelliSense nagłówków zdalnych. Aby zaktualizować pamięć podręczną nagłówka po wprowadzeniu zmian na maszynie z systemem Linux, wybierz połączenie zdalne, a następnie wybierz pozycję Aktualizuj. Wybierz pozycję Usuń , aby usunąć nagłówki bez usuwania samego połączenia. Wybierz pozycję Eksploruj, aby otworzyć katalog lokalny w Eksplorator plików. Traktuj ten folder jako tylko do odczytu. Aby pobrać nagłówki istniejącego połączenia utworzonego przed programem Visual Studio 2017 w wersji 15.3, wybierz połączenie, a następnie wybierz pozycję Pobierz.

Zrzut ekranu przedstawiający okno dialogowe Opcje z wybraną opcją Menedżer funkcji IntelliSense dla wielu platform > Menedżer połączeń > nagłówków zdalnych.

Zrzut ekranu przedstawiający okno dialogowe Opcje z wybraną Menedżer połączeń międzyplatformowymi > .

Rejestrowanie można włączyć, aby pomóc w rozwiązywaniu problemów:

Zrzut ekranu przedstawiający okno dialogowe Opcje zdalnego rejestrowania.

Ustawienia regionalne elementu docelowego systemu Linux

Ustawienia języka programu Visual Studio nie są propagowane do obiektów docelowych systemu Linux, ponieważ program Visual Studio nie zarządza zainstalowanymi pakietami ani nie konfiguruje ich. Komunikaty wyświetlane w oknie Dane wyjściowe , takie jak błędy kompilacji, są wyświetlane przy użyciu języka i ustawień regionalnych elementu docelowego systemu Linux. Należy skonfigurować docelowe obiekty docelowe systemu Linux dla żądanych ustawień regionalnych.

Zobacz też

Ustawianie właściwości kompilatora i kompilacji
Właściwości ogólne języka C++ (Linux C++)
Katalogi VC++ (Linux C++)
Kopiowanie właściwości projektu źródeł (Linux C++)
Właściwości zdarzenia kompilacji (Linux C++)