Dela via


Konfigurera ett Linux MSBuild C++-projekt i Visual Studio

Linux-stöd är tillgängligt i Visual Studio 2017 och senare.

Det här avsnittet beskriver hur du konfigurerar ett MSBuild-baserat Linux-projekt enligt beskrivningen i Skapa ett Linux MSBuild C++-projekt i Visual Studio. För Linux CMake-projekt, se Konfigurera ett Linux CMake-projekt.

Du kan konfigurera ett Linux-projekt för att rikta in dig på en fysisk Linux-dator, en virtuell dator eller Windows-undersystemet för Linux (WSL).

Visual Studio 2019 version 16.1 och senare:

  • När du riktar in dig på WSL kan du undvika de kopieringsåtgärder som krävs för att skapa och hämta IntelliSense som krävs när du riktar in dig på ett fjärranslutet Linux-system.

  • Du kan ange separata Linux-mål för att skapa och felsöka.

Allmänna inställningar

Om du vill visa konfigurationsalternativ väljer du menyn Projektegenskaper > eller högerklickar på projektet i Solution Explorer och väljer Egenskaper på snabbmenyn. Allmänna inställningar visas.

Skärmbild av dialogrutan Egenskapssidor Allmän konfiguration.

En körbar fil (.out) skapas som standard. Om du vill skapa ett statiskt eller dynamiskt bibliotek, eller om du vill använda en befintlig Makefile, använder du inställningen Konfigurationstyp .

Om du skapar för Windows Undersystem för Linux (WSL) är WSL Version 1 begränsad till 64 parallella kompileringsprocesser. Detta styrs av inställningen Maximal parallella kompileringsjobb i Konfigurationsegenskaper > C/C++ > Allmänt.

Oavsett vilken WSL-version du använder rekommenderar vi att du skapar med Ninja om du tänker använda mer än 64 parallella kompileringsprocesser, vilket i allmänhet blir snabbare och mer tillförlitligt. Om du vill skapa med Ninja använder du inställningen Aktivera inkrementell build i Konfigurationsegenskaper > Allmänt.

Mer information om inställningarna på egenskapssidorna finns i Referens för linux-projektegenskapssida.

Fjärrinställningar

Om du vill ändra inställningar som är relaterade till den fjärranslutna Linux-datorn konfigurerar du de fjärrinställningar som visas under Allmänt.

  • Om du vill ange en fjärrdator för Linux använder du posten Fjärrbyggmaskin. På så sätt kan du välja en av de anslutningar som skapades tidigare. Information om hur du skapar en ny post finns i avsnittet Ansluta till din fjärranslutna Linux-dator .

    Skärmbild som visar fjärrbyggmaskinen.

    Visual Studio 2019 version 16.7 och senare: För att rikta in dig på Windows-undersystem för Linux (WSL), ställ in listrutan PlattformsverktygGCC för Windows-undersystem för Linux. De andra fjärralternativen försvinner och sökvägen till standard-WSL-gränssnittet visas på plats:

    Skärmbild som visar WSL-byggdatorn.

    Om du har WSL-installationer sida vid sida kan du ange en annan sökväg här. Mer information om hur du hanterar flera distributioner finns i Hantera och konfigurera Windows-undersystem för Linux.

    Du kan ange ett annat mål för felsökning på sidanFelsökning av >.

  • Den fjärrinstallerade byggrotkatalogen bestämmer den huvudsakliga platsen där projektet byggs på den avlägsna Linux-datorn. Detta är som standard ~/projects om det inte ändras.

  • Remote Build Project Directory är platsen där det här specifika projektet kommer att byggas på den fjärranslutna Linux-datorn. Detta kommer som standard att vara $(RemoteRootDir)/$(ProjectName), som expanderar till en katalog med namnet efter det aktuella projektet, under rotkatalogen ovan.

Anmärkning

Om du vill ändra C- och C++-standardkompilatorerna, eller den Linker och Archiver som används för att skapa projektet, använder du lämpliga poster i avsnittet C/C++ > Allmänt och avsnittet Linker > General . Du kan till exempel ange en viss version av GCC eller Clang. Mer information finns i C/C++-egenskaper (Linux C++) och Linker Properties (Linux C++).

Kopiera källor (endast fjärrsystem)

Anmärkning

Det här avsnittet gäller inte för WSL.

När du bygger på fjärrsystem kopieras källfilerna på utvecklingsdatorn till Linux-datorn och kompileras där. Som standard kopieras alla källor i Visual Studio-projektet till de platser som anges i inställningarna ovan. Ytterligare källor kan dock också läggas till i listan, eller så kan kopiering av källor stängas av helt, vilket är standard för ett Makefile-projekt.

  • Källor som ska kopieras avgör vilka källor som kopieras till fjärrdatorn. Som standard är @(SourcesToCopyRemotely) standard för alla källkodsfiler i projektet, men innehåller inga tillgångs-/resursfiler, till exempel bilder.

  • Kopieringskällor kan aktiveras och inaktiveras för att aktivera och inaktivera kopiering av källfiler till fjärrdatorn.

  • Med ytterligare källor att kopiera kan du lägga till ytterligare källfiler som kopieras till fjärrsystemet. Du kan ange en semikolonavgränsad lista, eller så kan du använda syntaxen := för att ange ett lokalt namn och ett fjärrnamn som ska användas:

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

Skapa händelser

Eftersom all kompilering sker på en fjärrdator (eller WSL) har flera ytterligare build-händelser lagts till i avsnittet Bygghändelser i Projektegenskaper. Dessa är remote pre-build event, Remote Pre-Link Event och Remote Post-Build Event, och inträffar på fjärrdatorn före eller efter de enskilda stegen i processen.

Skärmbild av dialogrutan Egenskapssidor som visar Bygghändelser.

IntelliSense för header-filer på fjärrsystem

När du lägger till en ny anslutning i Anslutningshanteraren identifierar Visual Studio automatiskt inkluderingskatalogerna för kompilatorn i fjärrsystemet. Visual Studio zippar sedan upp och kopierar filerna till en katalog på din lokala Windows-dator. När du sedan använder den anslutningen i ett Visual Studio- eller CMake-projekt används rubrikerna i dessa kataloger för att tillhandahålla IntelliSense.

Anmärkning

I Visual Studio 2019 version 16.5 och senare har fjärrhuvudkopian optimerats. Rubriker kopieras nu på begäran när du öppnar ett Linux-projekt eller konfigurerar CMake för ett Linux-mål. Kopian sker i bakgrunden per projekt baserat på projektets angivna kompilatorer. Mer information finns i Förbättringar av noggrannhet och prestanda för Linux IntelliSense.

Den här funktionen beror på att Linux-datorn har zip installerat. Du kan installera zip med det här kommandot apt-get:

sudo apt install zip

Om du vill hantera sidhuvudcachen går du till Verktyg > Alternativ, Plattformöverskridande > Anslutningshanterare > Fjärrhuvuden IntelliSense Manager. Om du vill uppdatera sidhuvudcachen när du har gjort ändringar på Linux-datorn väljer du fjärranslutningen och väljer sedan Uppdatera. Välj Ta bort för att ta bort rubrikerna utan att ta bort själva anslutningen. Välj Utforska för att öppna den lokala katalogen i Utforskaren. Behandla den här mappen som skrivskyddad. Om du vill ladda ned rubriker för en befintlig anslutning som skapades före Visual Studio 2017 version 15.3 väljer du anslutningen och väljer sedan Ladda ned.

Skärmbild som visar dialogrutan Alternativ med Cross Platform > Connection Manager > Remote Headers IntelliSense Manager valt.

Skärmbild som visar dialogrutan Alternativ med Cross Platform > Connection Manager valt.

Du kan aktivera loggning för att felsöka problem:

Skärmbild av dialogrutan Alternativ som visar alternativ för fjärrloggning.

Linux-målspråksinställning

Språkinställningarna för Visual Studio sprids inte till Linux-mål eftersom Visual Studio inte hanterar eller konfigurerar installerade paket. Meddelanden som visas i utdatafönstret , till exempel byggfel, visas med hjälp av språket och nationella inställningar för Linux-målet. Du måste konfigurera dina Linux-mål för önskat språk.

Se även

Ange kompilator- och byggegenskaper
Allmänna egenskaper för C++ (Linux C++)
VC++ Kataloger (Linux C++)
Projektegenskaper för kopieringskällor (Linux C++)
Skapa händelseegenskaper (Linux C++)