Udostępnij za pośrednictwem


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 podczas kierowania 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ć statyczną lub dynamiczną bibliotekę albo użyć istniejącego pliku Make, użyj ustawienia Typ konfiguracji.

Jeśli tworzysz kompilację dla Podsystem Windows dla systemu Linux (WSL), program WSL w wersji 1 jest ograniczony do 64 procesów kompilacji równoległej. Jest to zależne od ustawienia Maksymalna liczba zadań 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 skompilowanie za pomocą narzędzia Ninja — co ogólnie będzie szybsze i bardziej niezawodne. Aby skompilować za pomocą narzędzia Ninja, użyj ustawienia Włącz kompilację przyrostowa we właściwościach > Konfiguracja 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 wyświetlane w obszarze Ogólne.

  • Aby określić zdalny docelowy komputer z systemem Linux, użyj wpisu Maszyna kompilacji zdalnej. Pozwoli to wybrać jedną z utworzonych wcześniej połączeń. Aby utworzyć nowy wpis, zobacz sekcję Łączenie z komputerem zdalnego systemu 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 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 stronie Debugowanie wł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. Spowoduje to ustawienie domyślne ~/projects , chyba że zostanie zmienione.

  • Katalog projektów kompilacji zdalnej jest miejscem, w którym ten konkretny projekt zostanie skompilowany na zdalnym komputerze z systemem Linux. Spowoduje to ustawienie domyślne $(RemoteRootDir)/$(ProjectName), które zostanie rozwinięte do katalogu o nazwie po bieżącym projekcie 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ę 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 do komputera zdalnego. Domyślnie właściwość @(SourcesToCopyRemotely) jest domyślnie ustawiona na wszystkie pliki kodu źródłowego w projekcie, ale nie zawiera żadnych plikó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ż wszystkie kompilacje są wykonywane 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, zdalnego zdarzenia przed połączeniem i zdalnego zdarzenia po kompilacji i wystąpią na komputerze zdalnym przed lub po poszczególnych krokach procesu.

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. Następnie program Visual Studio zips 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 na podstawie 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ć za pomocą tego polecenia apt-get:

sudo apt install zip

Aby zarządzać pamięcią podręczną nagłówka, przejdź do pozycji Opcje narzędzi>, 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 ułatwić rozwiązywanie problemów:

Zrzut ekranu przedstawiający okno dialogowe Opcje z opcjami 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. Musisz 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++)
Kopiuj źródła właściwości projektu (Linux C++)
Właściwości zdarzenia kompilacji (Linux C++)