Megosztás a következőn keresztül:


Linux CMake-projekt konfigurálása a Visual Studióban

A Linux-támogatás a Visual Studio 2017-ben és újabb verzióiban érhető el. A verziók dokumentációjának megtekintéséhez állítsa a tartalomjegyzék fölött található Verzió legördülő menüt Visual Studio 2017 vagy Visual Studio 2019.

Ez a témakör azt ismerteti, hogyan adhat hozzá Linux-konfigurációt egy távoli Linux-rendszert vagy Windows-alrendszert (WSL) futtató CMake-projekthez. Folytatódik a Sorozat, amely a Linux CMake-projekt Visual Studióban való létrehozásával kezdődött. Ha az MSBuildet használja, olvassa el a Linux MSBuild-projekt konfigurálása a Visual Studióban című témakört

Linux-konfiguráció hozzáadása

A konfigurációval különböző platformokat (Windows, WSL, távoli rendszer) célozhat meg ugyanazzal a forráskóddal. A konfiguráció a fordítók beállítására, a környezeti változók átadására és a CMake meghívásának testreszabására is használható. A CMakeSettings.json fájl a CMake testreszabása beállításai között felsorolt tulajdonságok egy részét vagy egészét, valamint a távoli Linux-gépen a buildbeállításokat vezérlő egyéb tulajdonságokat is megadja.

A Visual Studio 2017 alapértelmezett CMake-beállításainak módosításához válassza a CMake> Settings >CMakeLists.txt lehetőséget a főmenüben. Vagy kattintson a jobb gombbal aCMakeLists.txt a Megoldáskezelőben , és válassza a CMake beállításainak módosítása lehetőséget. A Visual Studio ezután létrehoz egy új CMakeSettings.json fájlt a gyökérprojekt mappájában. A módosítások elvégzéséhez nyissa meg a fájlt, és módosítsa közvetlenül. További információ: CMake-beállítások testreszabása.

A Visual Studio 2017 Linux-Debug alapértelmezett konfigurációja (és a Visual Studio 2019 16.0-s verziója) a következőképpen néz ki:

{
  "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"
      ]
    }
  ]
}

Ha módosítani szeretné a Visual Studio 2019 vagy újabb verziójában az alapértelmezett CMake-beállításokat, a fő eszköztáron nyissa meg a Konfiguráció legördülő menüt, és válassza a Konfigurációk kezelése lehetőséget.

Képernyőkép a Konfiguráció legördülő listában kiemelt CMake Manage Configurations (Konfigurációk kezelése) lehetőségről.

Ez a parancs megnyitja a CMake Beállítások szerkesztőt, amellyel szerkesztheti a CMakeSettings.json fájlt a gyökérprojekt mappájában. A fájlt a JSON-szerkesztővel is megnyithatja a CMake-beállítások párbeszédpanel jobb felső sarkában található JSON szerkesztése gombra kattintva. További információ: CMake-beállítások testreszabása.

A Visual Studio 2019 16.1-es és újabb verziójának alapértelmezett Linux-Debug konfigurációja a következőképpen néz ki:

{
  "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": []
    }
  ]
}

A Visual Studio 2019 16.6-os vagy újabb verziójában a Ninja az alapértelmezett generátor távoli rendszert vagy WSL-t célzó konfigurációkhoz, szemben a Unix Makefile-okkal. További információkért lásd ezt a bejegyzést a C++ csapat blogján.

További információ ezekről a beállításokról: CMakeSettings.json referencia.

Összeállítás készítésekor:

  • Ha távoli rendszert céloz meg, a Visual Studio alapértelmezés szerint az Eszközök>beállításai>platformfüggetlen>kapcsolatkezelője listában az első távoli rendszert választja ki a távoli célokhoz.
  • Ha nem található távoli kapcsolat, a rendszer kérni fogja, hogy hozzon létre egyet. További információ: Csatlakozás a távoli Linux-számítógéphez.

Linux-cél kiválasztása

Amikor megnyit egy CMake-projektmappát, a Visual Studio feldolgozza a CMakeLists.txt fájlt, és megad egy Windows célplatformot: x86-Debug. Ha egy távoli Linux-rendszert szeretne megcélozni, a Linux fordítóprogram szerint módosítania kell a projekt beállításait. Ha például linuxos GCC-t használ, és hibakeresési adatokkal dolgozik, válassza a Következőt: Linux-GCC-Debug vagy Linux-GCC-Release.

Ha távoli Linux-célt ad meg, a rendszer a forrást a távoli rendszerbe másolja.

A cél kiválasztása után a CMake automatikusan fut a Linux rendszeren a projekt CMake-gyorsítótárának létrehozásához:

Képernyőkép a Visual Studio-ról, amelyen a CMake-gyorsítótár létrehozása linuxos kimenete látható.

Cél Windows-alrendszer Linuxhoz

Ha a Linux rendszerhez készült Windows-alrendszert (WSL) célozza, nem kell távoli kapcsolatot hozzáadnia.

A WSL megcélzásához válassza a Konfigurációk kezelése lehetőséget a fő eszköztár konfigurációs legördülő menüjében:

A CMake-konfigurációk legördülő menüje a

Megjelenik a CMakeSettings.json ablak.

Az CMake beállítások párbeszédpanel a plusz gombbal van kiemelve, amely hozzáadja a kiválasztott konfigurációt, ami a Linux-GCC-debug.

Nyomja le a Konfiguráció hozzáadása gombot (a zöld "+" gombot), majd A GCC használata esetén válassza a Linux-GCC-Debug vagy a Linux-GCC-Release lehetőséget. Használja a Clang-változatokat, ha a Clang/LLVM eszközkészletet használja. A konfiguráció mentéséhez nyomja le a Kijelölés , majd a Ctrl+S billentyűkombinációt .

Visual Studio 2019 16.1-es verzió A WSL megcélzásakor a Visual Studiónak nem kell forrásfájlokat másolnia, és két szinkron példányt kell fenntartania a buildfáról, mert a Linuxon futó fordító közvetlen hozzáféréssel rendelkezik a forrásfájlokhoz a csatlakoztatott Windows fájlrendszerben.

IntelliSense

A C++ IntelliSense pontos használatához hozzá kell férnie a C++ forrásfájlok által hivatkozott C++ fejlécekhez. A Visual Studio automatikusan egy CMake-projekt által hivatkozott fejléceket használ Linuxról Windowsra, hogy teljes körű IntelliSense-élményt nyújtson. További információért tekintse meg: IntelliSense a távoli fejlécekhez.

Területi beállítás

A Visual Studio nyelvi beállításai nem propagálhatók Linux-célokra, mert a Visual Studio nem kezeli vagy konfigurálja a telepített csomagokat. A Kimeneti ablakban látható üzenetek, mint például a fordítási hibák, a Linux célkörnyezet nyelvén és területi beállításai szerint jelennek meg. Konfigurálnia kell a Linux-célokat a kívánt területi beállításhoz.

További beállítások

A következő beállításokkal futtathat parancsokat a Linux rendszeren a létrehozás előtt és után, valamint a CMake-generáció előtt. Az értékek bármely, a távoli rendszeren érvényes parancsok lehetnek. A kimenet vissza lesz csövezve a Visual Studióba.

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

Következő lépések

CMake hibakeresési munkamenetek konfigurálása

Lásd még

Projekttulajdonságok használata
CMake-beállítások testreszabása
CMake előre definiált konfigurációs referencia