Konfigurace projektu Linux MSBuild C++ v sadě Visual Studio

Podpora Linuxu je k dispozici v sadě Visual Studio 2017 a novějších verzích.

Toto téma popisuje, jak nakonfigurovat projekt Linuxu založený na MSBuildu, jak je popsáno v tématu Vytvoření projektu linuxového nástroje MSBuild C++ v sadě Visual Studio. V případě projektů CMake pro Linux si přečtěte téma Konfigurace projektu CMake pro Linux.

Projekt Linuxu můžete nakonfigurovat tak, aby cílil na fyzický počítač s Linuxem, virtuální počítač nebo Subsystém Windows pro Linux (WSL).

Visual Studio 2019 verze 16.1 a novější:

  • Když cílíte na WSL, můžete se vyhnout operacím kopírování potřebným k sestavení a získání technologie IntelliSense, které jsou potřeba při cílení na vzdálený systém Linux.

  • Pro sestavování a ladění můžete zadat samostatné cíle Linuxu.

Obecná nastavení

Pokud chcete zobrazit možnosti konfigurace, vyberte nabídku Vlastnosti projektu > nebo klikněte pravým tlačítkem na projekt v Průzkumník řešení a v místní nabídce vyberte Vlastnosti. Zobrazí se obecné nastavení.

Snímek obrazovky dialogového okna Stránky vlastností – Obecná konfigurace

Ve výchozím nastavení je sestaven spustitelný soubor (.out). Pokud chcete vytvořit statickou nebo dynamickou knihovnu nebo použít existující soubor pravidel, použijte nastavení Typ konfigurace .

Pokud vytváříte pro Subsystém Windows pro Linux (WSL), je WSL verze 1 omezená na 64 paralelních procesů kompilace. Toto nastavení se řídí nastavením Maximální počet paralelních úloh kompilace ve vlastnostech > konfigurace C/C++ > Obecné.

Bez ohledu na verzi WSL, kterou používáte, pokud máte v úmyslu použít více než 64 paralelních procesů kompilace, doporučujeme, abyste sestavili pomocí ninja – což bude obecně rychlejší a spolehlivější. Pokud chcete vytvářet pomocí ninja, použijte nastavení Povolit přírůstkové sestavení ve vlastnostech > konfigurace Obecné.

Další informace o nastavení na stránkách vlastností najdete v tématu Linux Project Property Page Reference.

Vzdálená nastavení

Pokud chcete změnit nastavení související se vzdáleným počítačem s Linuxem, nakonfigurujte vzdálená nastavení, která se zobrazí v části Obecné.

  • Pokud chcete zadat vzdálený cílový počítač s Linuxem, použijte položku Vzdálený počítač sestavení . To vám umožní vybrat jedno z dříve vytvořených připojení. Pokud chcete vytvořit novou položku, přečtěte si část Připojení ke vzdálenému počítači s Linuxem .

    Snímek obrazovky se vzdáleným počítačem pro sestavení

    Visual Studio 2019 verze 16.7 a novější: Pokud chcete cílit na Subsystém Windows pro Linux (WSL), nastavte rozevírací seznam Sada nástrojů platformyna GCC pro Subsystém Windows pro Linux. Ostatní vzdálené možnosti zmizí a na jejich místě se zobrazí cesta k výchozímu prostředí WSL:

    Snímek obrazovky znázorňující počítač sestavení WSL

    Pokud máte souběžné instalace WSL, můžete zde zadat jinou cestu. Další informace o správě více distribucí najdete v tématu Správa a konfigurace Subsystém Windows pro Linux.

    Na stránceLaděnívlastností> konfigurace můžete zadat jiný cíl ladění.

  • Kořenový adresář vzdáleného sestavení určuje kořenové umístění, kde je projekt na vzdáleném počítači s Linuxem sestavený. Pokud se nezmění, použije se výchozí hodnota ~/projects .

  • Adresář vzdáleného projektu sestavení je místo, kde bude tento konkrétní projekt vytvořen na vzdáleném počítači s Linuxem. Výchozí hodnota bude $(RemoteRootDir)/$(ProjectName), která se rozbalí do adresáře pojmenovaného podle aktuálního projektu v kořenovém adresáři nastaveném výše.

Poznámka

Chcete-li změnit výchozí kompilátory jazyka C a C++ nebo linker a archiver použitý k sestavení projektu, použijte příslušné položky v části C/C++ > Obecné a v části Linker > Obecné . Můžete například zadat určitou verzi GCC nebo Clang. Další informace najdete v tématech Vlastnosti C/C++ (Linux C++) a Vlastnosti linkeru (Linux C++).

Kopírovat zdroje (jenom vzdálené systémy)

Poznámka

Tato část se nevztahuje na cílení na WSL.

Při sestavování na vzdálených systémech se zdrojové soubory na vašem vývojovém počítači zkopírují do počítače s Linuxem a zkompilují se tam. Ve výchozím nastavení se všechny zdroje v projektu sady Visual Studio zkopírují do umístění nastavených ve výše uvedeném nastavení. Do seznamu se ale dají přidat i další zdroje nebo je možné kopírování zdrojů úplně vypnout, což je výchozí nastavení pro projekt souboru pravidel.

  • Zdroje, které se mají zkopírovat , určuje, které zdroje se zkopírují do vzdáleného počítače. Ve výchozím nastavení je @(SourcesToCopyRemotely) ve výchozím nastavení všechny soubory zdrojového kódu v projektu, ale neobsahuje žádné soubory prostředků nebo prostředků, jako jsou obrázky.

  • Kopírování zdrojů lze zapnout nebo vypnout, aby se povolilo nebo zakázalo kopírování zdrojových souborů do vzdáleného počítače.

  • Další zdroje ke kopírování umožňují přidat další zdrojové soubory, které se zkopírují do vzdáleného systému. Můžete zadat seznam oddělený středníkem nebo můžete použít syntaxi := a zadat místní a vzdálený název, který se má použít:

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

Události sestavení

Vzhledem k tomu, že veškerá kompilace probíhá na vzdáleném počítači (nebo WSL), bylo přidáno několik dalších událostí sestavení do oddílu Události sestavení ve vlastnostech projektu. Jedná se o vzdálenou událost před sestavením, událost vzdáleného předběžného propojení a událost po sestavení a dojde na vzdáleném počítači před jednotlivými kroky procesu nebo po nich.

Snímek obrazovky s dialogovým oknem Stránky vlastností zobrazující události sestavení

IntelliSense pro hlavičky ve vzdálených systémech

Když v Správce připojení přidáte nové připojení, sada Visual Studio automaticky rozpozná adresáře zahrnutí kompilátoru ve vzdáleném systému. Visual Studio pak tyto soubory zazipuje a zkopíruje do adresáře na místním počítači s Windows. Kdykoli pak použijete toto připojení v projektu visual studia nebo CMake, hlavičky v těchto adresářích se použijí k poskytování Technologie IntelliSense.

Poznámka

V sadě Visual Studio 2019 verze 16.5 a novějších je optimalizované vzdálené kopírování hlaviček. Hlavičky se teď kopírují na vyžádání při otevření linuxového projektu nebo konfiguraci CMake pro cíl Linuxu. Kopírování probíhá na pozadí na základě jednotlivých projektů na základě zadaných kompilátorů projektu. Další informace najdete v tématu Vylepšení přesnosti a výkonu technologie IntelliSense pro Linux.

Tato funkce závisí na počítači s Linuxem, který má nainstalovaný zip. Zip můžete nainstalovat pomocí tohoto příkazu apt-get:

sudo apt install zip

Pokud chcete spravovat mezipaměť hlaviček, přejděte na Nástroje > Možnosti, Multiplatformní > Správce připojení > Remote Headers IntelliSense Manager. Pokud chcete po provedení změn na počítači s Linuxem aktualizovat mezipaměť hlaviček, vyberte vzdálené připojení a pak vyberte Aktualizovat. Pokud chcete záhlaví odebrat bez odstranění samotného připojení, vyberte Odstranit . Výběrem možnosti Prozkoumat otevřete místní adresář v Průzkumník souborů. Považovat tuto složku jen pro čtení. Pokud chcete stáhnout hlavičky pro existující připojení vytvořené před sadou Visual Studio 2017 verze 15.3, vyberte připojení a pak vyberte Stáhnout.

Snímek obrazovky s dialogovým oknem Možnosti s vybraným správcem > Technologie IntelliSense pro různé platformy Správce připojení > vzdálených hlaviček

Snímek obrazovky s dialogovým oknem Možnosti s vybranou možností Multiplatformní > Správce připojení

Při řešení problémů můžete povolit protokolování:

Snímek obrazovky s dialogovým oknem Možnosti zobrazující možnosti vzdáleného protokolování

Cílové národní prostředí Linuxu

Nastavení jazyka sady Visual Studio se nerozšíší do cílů Linuxu, protože Visual Studio nespravuje ani nekonfiguruje nainstalované balíčky. Zprávy zobrazené v okně Výstup , například chyby sestavení, se zobrazují pomocí jazyka a národního prostředí cíle Linuxu. Budete muset nakonfigurovat cíle Linuxu pro požadované národní prostředí.

Viz také

Nastavení vlastností kompilátoru a sestavení
Obecné vlastnosti jazyka C++ (Linux C++)
Adresáře VC++ (Linux C++)
Kopírovat vlastnosti projektu zdrojů (Linux C++)
Vlastnosti události sestavení (Linux C++)