Sdílet prostřednictvím


Konfigurace projektu Linux CMake v sadě Visual Studio

Podpora Linuxu je dostupná v sadě Visual Studio 2017 a novějších verzích. Pokud chcete zobrazit dokumentaci k těmto verzím, nastavte rozevírací seznam Verze nad obsahem na Visual Studio 2017 nebo Visual Studio 2019.

Toto téma popisuje, jak přidat konfiguraci Linuxu do projektu CMake, který cílí na vzdálený systém Linux nebo Subsystém Windows pro Linux (WSL). Pokračuje v sérii, která začala vytvořením projektu Linux CMake v sadě Visual Studio. Pokud používáte NÁSTROJ MSBuild, přečtěte si téma Konfigurace projektu MSBuild pro Linux v sadě Visual Studio.

Přidání konfigurace Linuxu

Konfiguraci lze použít k cílení na různé platformy (Windows, WSL, vzdálený systém) se stejným zdrojovým kódem. Konfigurace se také používá k nastavení kompilátorů, předávání proměnných prostředí a přizpůsobení způsobu vyvolání CMake. Soubor CMakeSettings.json určuje některé nebo všechny vlastnosti uvedené v nastavení Přizpůsobit CMake a další vlastnosti, které řídí nastavení sestavení na vzdáleném počítači s Linuxem.

Pokud chcete změnit výchozí nastavení CMake v sadě Visual Studio 2017, zvolte CMake Change CMake>Settings>CMakeLists.txt z hlavní nabídky. Nebo klikněte pravým tlačítkem na CMakeLists.txt v Průzkumník řešení a zvolte Změnit nastavení CMake. Visual Studio pak ve složce kořenového projektu vytvoří nový soubor CMakeSettings.json . Pokud chcete provést změny, otevřete soubor a upravte ho přímo. Další informace najdete v tématu Přizpůsobení nastavení CMake.

Výchozí konfigurace linuxového ladění v sadě Visual Studio 2017 (a Visual Studio 2019 verze 16.0) vypadá takto:

{
  "configurations": [
    {
      "name": "Linux-Debug",
      "generator": "Unix Makefiles",
      "remoteMachineName": "${defaultRemoteMachineName}",
      "configurationType": "Debug",
      "remoteCMakeListsRoot": "/var/tmp/src/${workspaceHash}/${name}",
      "cmakeExecutable": "/usr/local/bin/cmake",
      "buildRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\build\\${name}",
      "installRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\install\\${name}",
      "remoteBuildRoot": "/var/tmp/build/${workspaceHash}/build/${name}",
      "remoteInstallRoot": "/var/tmp/build/${workspaceHash}/install/${name}",
      "remoteCopySources": true,
      "remoteCopySourcesOutputVerbosity": "Normal",
      "remoteCopySourcesConcurrentCopies": "10",
      "remoteCopySourcesMethod": "rsync",
      "remoteCopySourcesExclusionList": [
        ".vs",
        ".git"
      ],
      "rsyncCommandArgs": "-t --delete --delete-excluded",
      "remoteCopyBuildOutput": false,
      "cmakeCommandArgs": "",
      "buildCommandArgs": "",
      "ctestCommandArgs": "",
      "inheritEnvironments": [
        "linux_x64"
      ]
    }
  ]
}

Pokud chcete změnit výchozí nastavení CMake v sadě Visual Studio 2019 nebo novějším, otevřete na hlavním panelu nástrojů rozevírací seznam Konfigurace a zvolte Spravovat konfigurace.

Snímek obrazovky se zvýrazněnou možností Spravovat konfigurace CMake v rozevíracím seznamu Konfigurace

Tento příkaz otevře Editor nastavení CMake, který můžete použít k úpravě souboru CMakeSettings.json ve složce kořenového projektu. Soubor můžete otevřít také v editoru JSON kliknutím na tlačítko Upravit JSON v pravém horním rohu dialogového okna Nastavení CMake. Další informace naleznete v tématu Přizpůsobení nastavení CMake.

Výchozí konfigurace linuxového ladění v sadě Visual Studio 2019 verze 16.1 a novější vypadá takto:

{
  "configurations": [
    {
      "name": "Linux-GCC-Debug",
      "generator": "Ninja",
      "configurationType": "Debug",
      "cmakeExecutable": "cmake",
      "remoteCopySourcesExclusionList": [ ".vs", ".git", "out" ],
      "cmakeCommandArgs": "",
      "buildCommandArgs": "",
      "ctestCommandArgs": "",
      "inheritEnvironments": [ "linux_x64" ],
      "remoteMachineName": "${defaultRemoteMachineName}",
      "remoteCMakeListsRoot": "$HOME/.vs/${projectDirName}/${workspaceHash}/src",
      "remoteBuildRoot": "$HOME/.vs/${projectDirName}/${workspaceHash}/out/build/${name}",
      "remoteInstallRoot": "$HOME/.vs/${projectDirName}/${workspaceHash}/out/install/${name}",
      "remoteCopySources": true,
      "rsyncCommandArgs": "-t --delete --delete-excluded",
      "remoteCopyBuildOutput": false,
      "remoteCopySourcesMethod": "rsync",
      "variables": []
    }
  ]
}

V sadě Visual Studio 2019 verze 16.6 nebo novější je Ninja výchozím generátorem pro konfigurace, které cílí na vzdálený systém nebo WSL, na rozdíl od souborů pravidel systému Unix. Další informace najdete v tomto příspěvku na blogu týmu C++.

Další informace o těchto nastaveních najdete v CMakeSettings.json referenčních informacích.

Při sestavování:

  • Pokud cílíte na vzdálený systém, Sada Visual Studio vybere první vzdálený systém v seznamu v části Možnosti>nástrojů>pro různé platformy> Správce připojení ve výchozím nastavení pro vzdálené cíle.
  • Pokud se nenajde žádná vzdálená připojení, zobrazí se výzva k jeho vytvoření. Další informace najdete v tématu Připojení ke vzdálenému počítači s Linuxem.

Volba cíle Linuxu

Když otevřete složku projektu CMake, Visual Studio parsuje soubor CMakeLists.txt a určuje cíl systému Windows x86-Debug. Pokud chcete cílit na vzdálený systém Linux, změníte nastavení projektu na základě kompilátoru Linuxu. Pokud například používáte GCC v Linuxu a kompilujete s informacemi o ladění, zvolte: Linux-GCC-Debug nebo Linux-GCC-Release.

Pokud zadáte vzdálený cíl Linuxu, váš zdroj se zkopíruje do vzdáleného systému.

Po výběru cíle se CMake automaticky spustí v systému Linux a vygeneruje mezipaměť CMake pro váš projekt:

Snímek obrazovky sady Visual Studio znázorňující výstup generování mezipaměti CMake v Linuxu

Cílová Subsystém Windows pro Linux

Pokud cílíte na Subsystém Windows pro Linux (WSL), nemusíte přidávat vzdálené připojení.

Pokud chcete cílit na WSL, v rozevíracím seznamu konfigurace na hlavním panelu nástrojů vyberte Spravovat konfigurace :

Rozevírací seznam konfigurace CMake s vybranou možností Spravovat konfigurace

Zobrazí se okno CMakeSettings.json .

Dialogové okno nastavení CMake se zvýrazněným tlačítkem plus, které přidá vybranou konfiguraci, což je ladění Linux-GCC.

Stiskněte tlačítko Přidat konfiguraci (zelené tlačítko +) a pak zvolte Linux-GCC-Debug nebo Linux-GCC-Release , pokud používáte GCC. Pokud používáte sadu nástrojů Clang/LLVM, použijte varianty jazyka Clang. Konfiguraci uložíte stisknutím klávesy Select a potom Ctrl+S .

Visual Studio 2019 verze 16.1 Když cílíte na WSL, Visual Studio nemusí kopírovat zdrojové soubory a udržovat dvě synchronní kopie stromu sestavení, protože kompilátor v Linuxu má přímý přístup ke zdrojovým souborům v připojeném systému souborů Windows.

IntelliSense

Přesná technologie IntelliSense jazyka C++ vyžaduje přístup k hlavicím jazyka C++, na které odkazují zdrojové soubory jazyka C++. Visual Studio automaticky používá hlavičky odkazované projektem CMake z Linuxu do Windows k zajištění prostředí IntelliSense s plnou věrností. Další informace naleznete v intellisense pro vzdálené hlavičky.

Nastavení národního prostředí

Nastavení jazyka sady Visual Studio se nešíruje do cílů Linuxu, protože Visual Studio nespravuje ani nenakonfiguruje 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í.

Další nastavení

Pomocí následujících nastavení spusťte příkazy v systému Linux před a po sestavení a před generováním CMake. Hodnoty můžou být libovolný příkaz, který je platný ve vzdáleném systému. Výstup se předá zpět do sady Visual Studio.

{
      "remotePrebuildCommand": "",
      "remotePreGenerateCommand": "",
      "remotePostbuildCommand": "",
}

Další kroky

Konfigurace ladicích relací CMake

Viz také

Práce s vlastnostmi projektu
Přizpůsobení nastavení CMake
Referenční informace o předdefinované konfiguraci CMake