Aracılığıyla paylaş


Visual Studio'da Linux CMake projesi yapılandırma

Linux desteği Visual Studio 2017 ve sonraki sürümlerde kullanılabilir. Bu sürümlerin belgelerini görmek için içindekiler tablosunun üzerinde bulunan Sürüm açılan listesini Visual Studio 2017 veya Visual Studio 2019 olarak ayarlayın.

Bu konuda, uzak linux sistemini veya Linux için Windows Alt Sistemi (WSL) hedefleyen bir CMake projesine Linux yapılandırması ekleme işlemi açıklanmaktadır. Visual Studio'da Linux CMake projesi oluşturma ile başlayan seriye devam eder. Bunun yerine MSBuild kullanıyorsanız bkz . Visual Studio'da Linux MSBuild Projesi Yapılandırma

Linux yapılandırması ekleme

Yapılandırma, aynı kaynak koduyla farklı platformları (Windows, WSL, uzak sistem) hedeflemek için kullanılabilir. Derleyicilerinizi ayarlamak, ortam değişkenlerini geçirmek ve CMake'nin çağrılma şeklini özelleştirmek için de bir yapılandırma kullanılır. CMakeSettings.json dosyası, CMake ayarlarını özelleştirme bölümünde listelenen özelliklerin bir kısmını veya tümünü, ayrıca uzak Linux makinesindeki derleme ayarlarını denetleen diğer özellikleri belirtir.

Visual Studio 2017'de varsayılan CMake ayarlarını değiştirmek için ana menüden CMake>Ayarlarını>Değiştir CMakeLists.txt'ni seçin. İsterseniz, Çözüm Gezgini CMakeLists.txt sağ tıklayıp CMake Ayarlarını Değiştir'i de seçebilirsiniz. Visual Studio daha sonra kök proje klasörünüzde yeni bir CMakeSettings.json dosyası oluşturur. Değişiklik yapmak için dosyayı açın ve doğrudan değiştirin. Daha fazla bilgi için bkz . CMake ayarlarını özelleştirme.

Visual Studio 2017'de (ve Visual Studio 2019 sürüm 16.0'da) Linux-Debug için varsayılan yapılandırma şöyle görünür:

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

Visual Studio 2019 veya sonraki sürümlerinde varsayılan CMake ayarlarını değiştirmek için, ana araç çubuğundan Yapılandırma açılan listesini açın ve Yapılandırmaları Yönet'i seçin.

Yapılandırma açılan listesinde CMake Yapılandırmaları Yönet'in vurgulandığı ekran görüntüsü.

Bu komut, kök proje klasörünüzdeki CMakeSettings.json dosyasını düzenlemek için kullanabileceğiniz CMake Ayarları Düzenleyicisi'ni açar. CMake Ayarları iletişim kutusunun sağ üst kısmındaki JSON Düzenle düğmesine tıklayarak dosyayı JSON düzenleyicisiyle de açabilirsiniz. Daha fazla bilgi için bkz . CMake Ayarlarını Özelleştirme.

Visual Studio 2019 sürüm 16.1 ve sonraki sürümlerde varsayılan Linux-Debug yapılandırması şöyle görünür:

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

Visual Studio 2019 sürüm 16.6 veya sonraki sürümlerinde Ninja, Unix Derleme dosyalarının aksine uzak sistemi veya WSL'yi hedefleyen yapılandırmalar için varsayılan oluşturucudur. Daha fazla bilgi için C++ Ekip Blogu'nda bu gönderiye bakın.

Bu ayarlar hakkında daha fazla bilgi için bkz . CMakeSettings.json başvuru.

Derleme yaptığınızda:

  • Uzak bir sistemi hedef alıyorsanız Visual Studio, uzak hedefler için varsayılan olarak Araçlar>Seçenekler>Platformlar> Arası Bağlantı Yöneticisi altındaki listeden ilk uzak sistemi seçer.
  • Uzak bağlantı bulunmazsa, bir bağlantı oluşturmanız istenir. Daha fazla bilgi için bkz . Uzak Linux bilgisayarınıza bağlanma.

Linux hedefi seçme

Bir CMake proje klasörünü açtığınızda, Visual Studio CMakeLists.txt dosyasını ayrıştırarak x86-Debug'ın Windows hedefini belirtir. Uzak bir Linux sistemini hedeflemek için Proje ayarlarını Linux derleyicinize göre değiştireceksiniz. Örneğin, Linux üzerinde GCC kullanıyor ve hata ayıklama bilgileriyle derleniyorsanız şunu seçin: Linux-GCC-Debug veya Linux-GCC-Release.

Uzak bir Linux hedefi belirtirseniz, kaynağınız uzak sisteme kopyalanır.

Bir hedef seçtikten sonra CMake, projeniz için CMake önbelleğini oluşturmak üzere Linux sisteminde otomatik olarak çalışır:

Linux'ta CMake önbelleği oluşturma işleminin çıkışını gösteren Visual Studio'nun ekran görüntüsü.

Hedef Linux için Windows Alt Sistemi

Linux için Windows Alt Sistemi (WSL) hedefliyorsanız, uzak bağlantı eklemeniz gerekmez.

WSL'yi hedeflemek için ana araç çubuğundaki yapılandırma açılan listesinde Yapılandırmaları Yönet'i seçin:

Yapılandırmaları Yönet'in seçili olduğu CMake yapılandırmaları açılan listesi

CMakeSettings.json penceresi görüntülenir.

Linux-GCC-debug olan seçili yapılandırmayı ekleyen artı düğmesinin vurgulandığı CMake ayarları iletişim kutusu.

Yapılandırma Ekle'ye (yeşil '+' düğmesi) basın ve ardından GCC kullanıyorsanız Linux-GCC-Debug veya Linux-GCC-Release'ı seçin. Clang/LLVM araç takımını kullanıyorsanız Clang varyantlarını kullanın. Yapılandırmayı kaydetmek için Seç ve ardından Ctrl+S tuşlarına basın.

Visual Studio 2019 sürüm 16.1 WSL'yi hedeflediğinizde, Linux'taki derleyicinin bağlı Windows dosya sistemindeki kaynak dosyalarınıza doğrudan erişimi olduğundan, Visual Studio'nun kaynak dosyaları kopyalaması ve derleme ağacınızın zaman uyumlu iki kopyasını tutması gerekmez.

IntelliSense

Doğru C++ IntelliSense, C++ kaynak dosyalarınız tarafından başvuruda bulunan C++ üst bilgilerine erişim gerektirir. Visual Studio, tam uygunluk IntelliSense deneyimi sağlamak için Linux'tan Windows'a bir CMake projesi tarafından başvuruda bulunan üst bilgileri otomatik olarak kullanır. Daha fazla bilgi için bkz . Uzak üst bilgiler için IntelliSense.

Yerel ayar

Visual Studio yüklü paketleri yönetmediğinden veya yapılandırmadığından Visual Studio dil ayarları Linux hedeflerine yayılmaz. Çıkış penceresinde gösterilen derleme hataları gibi iletiler, Linux hedefinin dili ve yerel ayarı kullanılarak gösterilir. linux hedeflerinizi istenen yerel ayar için yapılandırmanız gerekir.

Daha fazla ayar

Derleme öncesinde ve sonrasında ve CMake oluşturmadan önce Linux sisteminde komut çalıştırmak için aşağıdaki ayarları kullanın. Değerler, uzak sistemde geçerli olan herhangi bir komut olabilir. Çıkış, Visual Studio'ya geri döner.

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

Sonraki adımlar

CMake hata ayıklama oturumlarını yapılandırma

Ayrıca bkz.

Proje özellikleriyle çalışma
CMake ayarlarını özelleştirme
CMake önceden tanımlanmış yapılandırma başvurusu