Aracılığıyla paylaş


İzlenecek yol: WSL 2 ve Visual Studio 2022 ile C++ derleme ve hatalarını ayıklama

Visual Studio 2022, Linux için Windows Alt Sistemi sürüm 2 (WSL 2) geliştirme için yerel bir C++ araç takımını tanıtır. Bu araç takımı artık Visual Studio 2022 sürüm 17.0 veya üzeri sürümlerde kullanılabilir.

WSL 2, Linux için Windows Alt Sistemi (WSL) için önerilen yeni sürümdür. Daha iyi Linux dosya sistemi performansı, GUI desteği ve tam sistem çağrısı uyumluluğu sağlar. Visual Studio'nun WSL 2 araç takımı, SSH bağlantısı eklemeden WSL 2 dağıtımlarında C++ kodu derlemek ve hatalarını ayıklamak için Visual Studio'yu kullanmanıza olanak tanır. Visual Studio 2019 sürüm 16.1'de kullanıma sunulan yerel WSL 1 araç takımını kullanarak WSL 1 dağıtımlarında C++ kodu derleyebilir ve hatalarını ayıklayabilirsiniz.

Visual Studio'nun WSL 2 araç takımı hem CMake hem de MSBuild tabanlı Linux projelerini destekler. CMake, Visual Studio ile tüm C++ platformlar arası geliştirme için önerimizdir. Aynı projeyi Windows, WSL ve uzak sistemlerde derleyip hatalarını ayıkladığı için CMake'yi öneririz.

Bu konudaki bilgilerin video sunumu için bkz . Video: WSL 2 Dağıtımları ve Visual Studio 2022 ile C++ Hatalarını Ayıklama.

WSL 2 araç takımı arka planı

Visual Studio'daki C++ platformlar arası destek, tüm kaynak dosyaların Windows dosya sisteminden kaynaklandığını varsayar. Bir WSL 2 dağıtımını hedeflerken, Visual Studio dosyaları Windows dosya sisteminden WSL dosya sistemine kopyalamak için yerel rsync bir komut yürütür. Yerel rsync kopya herhangi bir kullanıcı müdahalesi gerektirmez. Visual Studio bir WSL 2 dağıtımı kullandığınızı algıladığında otomatik olarak gerçekleşir. WSL 1 ile WSL 2 arasındaki farklar hakkında daha fazla bilgi edinmek için bkz . WSL 1 ile WSL 2 Karşılaştırması.

Visual Studio'da CMake Presets tümleştirmesi WSL 2 araç takımını destekler. Daha fazla bilgi edinmek için bkz . Visual Studio ve Visual Studio Code'da CMake Ön Ayarları tümleştirmesi ve Visual Studio'da CMake Ön Ayarları ile yapılandırma ve derleme. Bu makalede Gelişmiş WSL 2 ve CMake projeleriyle ilgili dikkat edilmesi gerekenler bölümünde daha gelişmiş bilgiler de bulunmaktadır.

Derleme araçlarını yükleme

WSL 2'de derlemek ve hata ayıklamak için gereken araçları yükleyin. Sonraki bir adımda Visual Studio'nun CMake ikili dağıtımını kullanarak CMake'in son sürümünü yükleyeceksiniz.

  1. WSL'yi yükleme başlığındaki yönergeleri izleyerek WSL ve WSL 2 dağıtımı yükleyin.

  2. Dağıtımınızın kullandığı apt varsayılarak (bu kılavuzda Ubuntu kullanılır), WSL 2 dağıtımınıza gerekli derleme araçlarını yüklemek için aşağıdaki komutları kullanın:

    sudo apt update
    sudo apt install g++ gdb make ninja-build rsync zip
    

    Yukarıdaki apt komutlar yüklenir:

    • C++ derleyicisi
    • gdb
    • CMake
    • rsync
    • zip
    • Temel alınan derleme sistemi oluşturucu

WSL 2 dağıtımı ile platformlar arası CMake geliştirme

Bu kılavuzda Ubuntu üzerinde GCC ve Ninja kullanılır. Ayrıca Visual Studio 2022 sürüm 17.0 Önizleme 2 veya üzeri.

Visual Studio, CMake projesini proje kökünde bir dosya içeren bir CMakeLists.txt klasör olarak tanımlar. Bu kılavuzda, Visual Studio CMake Project şablonunu kullanarak yeni bir CMake projesi oluşturacaksınız:

  1. Visual Studio Kullanmaya başlayın ekranında Yeni proje oluştur'u seçin.

    Visual Studio 2022 kullanmaya başlama iletişim kutusunun ekran görüntüsü. Kullanılabilir seçenekler şunlardır: Depo kopyalama, Proje veya çözüm açma, Yerel klasör açma, Yeni proje oluşturma veya Kod olmadan devam etme.":::

  2. Şablon ara metin kutusuna "cmake" yazın. CMake Proje türünü seçin ve İleri'yi seçin. Projeye bir ad ve konum verin ve oluştur'u seçin.

  3. Visual Studio'nun CMake Önayarları tümleştirmesini etkinleştirin. Araçlar Yapılandırma, derleme ve test için CMake Ön Ayarlarını kullanmayı tercih et'i ve ardından Tamam'ı seçin. Bunun yerine, projenin köküne bir CMakePresets.json dosya ekleyebilirsiniz. Daha fazla bilgi için bkz . CMake Ön Ayarları tümleştirmesini etkinleştirme.

    Visual Studio proje seçeneklerinin ekran görüntüsü. Cmake > Genel seçilir.

    CMake yapılandırma dosya grubunda , 'Varsa CMake Önayarlarını kullan, aksi takdirde CMakeSettings.json kullan' ifadesi çağrılır ve seçilir.

  4. Tümleştirmeyi etkinleştirmek için: Ana menüden Dosya Başlarken sayfası görüntülenir. Yeni aç'ın altında, yeni kapatmış olduğunuz klasörü seçerek klasörü yeniden açın.

  5. Visual Studio ana menü çubuğunda üç açılan menü vardır. Etkin hedef sisteminizi seçmek için soldaki açılan listeyi kullanın. Bu, projeyi yapılandırmak ve derlemek için CMake'nin çağrıldığı sistemdir. ile wsl -l -vWSL yüklemeleri için Visual Studio sorguları. Aşağıdaki görüntüde WSL2: Ubuntu-20.04 Hedef Sistem olarak seçilmiş olarak gösterilir.

    Visual Studio hedef sistem açılan listesinin ekran görüntüsü. WSL2: Ubuntu-20.04 seçilidir.

    Not

    Visual Studio projenizi otomatik olarak yapılandırmaya başlarsa, CMake ikili dağıtımını yönetmek için 11. adımı okuyun ve aşağıdaki adıma geçin. Bu davranışı özelleştirmek için bkz . Otomatik yapılandırma ve önbellek bildirimlerini değiştirme.

  6. Etkin Ön Ayarı Yapılandır'ı seçmek için ortadaki açılan listeyi kullanın. Ön Ayarları Yapılandırma, Visual Studio'ya CMake'yi çağırmayı ve temel derleme sistemini oluşturmayı bildirir. 7. adımda etkin Yapılandırma Hazır Ayarı, Visual Studio tarafından oluşturulan linux varsayılan Ön Ayarıdır. Özel Bir Yapılandırma Hazır Ayarı oluşturmak için Yapılandırmaları Yönet... öğesini seçin. Ön Ayarları Yapılandırma hakkında daha fazla bilgi için bkz. Ön Ayarı Yapılandırma ve Ön Ayarları Düzenleme.

    Visual Studio etkin yapılandırma önceden ayarlanmış açılan listesinin ekran görüntüsü. Yapılandırmaları Yönet... seçilidir.

  7. Etkin Derleme Ön Ayarınızı seçmek için sağdaki açılan listeyi kullanın. Derleme Ön Ayarları, Visual Studio'ya derlemeyi nasıl çağırılacağını söyler. 7. adımdaki çizimde etkin Derleme Ön Ayarı, Visual Studio tarafından oluşturulan Varsayılan Derleme Ön Ayarıdır. Derleme Ön Ayarları hakkında daha fazla bilgi için bkz . Derleme Ön Ayarı Seçme.

  8. WSL 2'de projeyi yapılandırın. Proje oluşturma otomatik olarak başlatılmıyorsa, ProjeYapılandırma > proje-adı ile yapılandırmayı el ile çağır

    Visual Studio projesi yapılandırma açılan listesinin ekran görüntüsü. CMakeProject yapılandır seçili.

  9. WSL 2 dağıtımınızda desteklenen bir CMake sürümü yüklü değilse Visual Studio, ana menü şeridinin altında sizden CMake'nin son sürümünü dağıtmanızı ister. CMake ikili dosyalarını WSL 2 dağıtımınıza dağıtmak için Evet'i seçin.

    Visual Studio araç çubuğunun altındaki istemin ekran görüntüsü

    Kullanıcıdan en son C Make ikili dosyalarınıN C make dosyasından yüklenip yüklenmeyeceği sorulur. desteklenen C Make sürümü yüklü olmadığından kuruluş."

  10. Yapılandırma adımının tamamlandığını ve CMake bölmesinin altındaki Çıkış penceresinde CMake oluşturma tamamlandı iletisini görebildiğinizi onaylayın. Derleme dosyaları WSL 2 dağıtımının dosya sistemindeki bir dizine yazılır.

    Visual Studio Çıkış penceresinin ekran görüntüsü. Yapılandırma adımı sırasında oluşturulan ve C Make oluşturma işleminin tamamlandığını içeren iletiler içerir.

  11. Etkin hata ayıklama hedefini seçin. Hata ayıklama açılan menüsünde proje için kullanılabilen tüm CMake hedefleri listelenir.

    Visual Studio hata ayıklama açılan menüsünün ekran görüntüsü. CMakeProject seçildi.

  12. Çözüm Gezgini proje alt klasörünü genişletin. CMakeProject.cpp dosyasında, içinde main()bir kesme noktası ayarlayın. Aşağıdaki ekran görüntüsünde vurgulanan Çözüm Gezgini Görünüm Seçici düğmesini seçerek de CMake hedefleri görünümüne gidebilirsiniz:

    Görünümleri değiştirme düğmesini gösteren Visual Studio çözüm gezgininin ekran görüntüsü. Giriş düğmesinin sağ kısmında bulunur.

  13. Hata Ayıklama Başlangıç'ı> seçin veya F5 tuşuna basın. Projeniz derlenir, yürütülebilir dosya WSL 2 dağıtımınızda başlatılır ve Visual Studio yürütmeyi kesme noktasında durdurur. Programınızın çıkışı (bu örnekte, "Hello CMake.") Linux Konsol Penceresi'nde görünür:

    Çalışan bir merhaba dünya programının ekran görüntüsü.

    Visual Studio Linux konsol penceresinde programın çıkışı görüntülenir: 'Hello C Make.' Düzenleyici penceresinde merhaba dünya programı gösterilir. Yürütme, 0 döndür yazan satırdaki bir kesme noktasında durduruldu."

Şimdi WSL 2 ve Visual Studio 2022 ile bir C++ uygulaması oluşturdunuz ve hata ayıkladiniz.

Gelişmiş WSL 2 ve CMake projelerinde dikkat edilmesi gerekenler

Visual Studio yalnızca etkin yapılandırma dosyası olarak kullanılan CMakePresets.json CMake projeleri için WSL 2 için yerel destek sağlar. uygulamasından CMakeSettings.json öğesine geçiş yapmak için CMakePresets.jsonbkz . Visual Studio'da CMake Ön Ayarları tümleştirmesini etkinleştirme.

Bir WSL 2 dağıtımını hedeflediyseniz ve WSL 2 araç takımını kullanmak istemiyorsanız, içindeki Visual Studio Uzak Ayarlar satıcı haritasında CMakePresets.jsonforceWSL1Toolset değerini true olarak ayarlayın. Daha fazla bilgi için bkz . Visual Studio Uzak Ayarlar satıcı haritası.

forceWSL1Tooslet true olarak ayarlanırsa Visual Studio, WSL dosya sisteminde kaynak dosyalarınızın bir kopyasını tutmaz. Bunun yerine, bağlı Windows sürücüsündeki (/mnt/...) kaynak dosyalara erişir.

Çoğu durumda, WSL 2 araç takımını WSL 2 dağıtımlarıyla kullanmak en iyisidir çünkü proje dosyaları bunun yerine Windows dosya sisteminde depolandığında WSL 2 daha yavaştır. WSL 2'deki dosya sistemi performansı hakkında daha fazla bilgi edinmek için bkz . WSL 1 ve WSL 2'yi Karşılaştırma.

WSL 2'de projenin kopyalandığı dizinin yolu, kaynak seçeneklerini kopyalama ve rsync komut bağımsız değişkenleri gibi gelişmiş ayarları içindeki Visual Studio Uzak Ayarlar satıcı eşlemesinde CMakePresets.jsonbelirtin. Daha fazla bilgi için bkz . Visual Studio Uzak Ayarlar satıcı haritası.

Sistem üst bilgileri, yerel IntelliSense deneyimini sağlamak için windows dosya sistemine otomatik olarak kopyalanır. Bu kopyaya dahil edilen veya bu kopyanın dışında bırakılan üst bilgileri içindeki Visual Studio Uzak Ayarlar satıcı haritasında CMakePresets.jsonözelleştirebilirsiniz.

Içindeki Visual Studio Ayarları satıcı haritasında CMakePresets.jsonIntelliSense modunu değiştirebilir veya diğer IntelliSense seçeneklerini belirtebilirsiniz. Satıcı haritası hakkında ayrıntılı bilgi için bkz . Visual Studio Uzak Ayarlar satıcı haritası.

WSL 2 ve MSBuild tabanlı Linux projeleri

CMake, Windows, WSL ve uzak sistemlerde aynı projeyi derlemenize ve hatalarını ayıklamanıza olanak sağladığından Visual Studio ile tüm C++ platformlar arası geliştirme için önerilir.

Ancak MSBuild tabanlı bir Linux projeniz olabilir.

MSBuild tabanlı bir Linux projeniz varsa Visual Studio'da WSL 2 araç takımına yükseltebilirsiniz. Çözüm gezgininde projeye sağ tıklayın ve özellikler Genel>> seçin:

Platform Araç Takımı'nın seçili olduğu visual studio açılan listesinin ekran görüntüsü ve sağ tarafta WSL2 Araç Takımı'nın seçili olduğu başka bir açılan liste.

Bir WSL 2 dağıtımını hedeflediyseniz ve WSL 2 araç takımını kullanmak istemiyorsanız Platform Araç Takımı açılan menüsünde Linux için Windows Alt Sistemi için GCC'yi veya Linux için Windows Alt Sistemi araç takımı için Clang'yi seçin. Bu araç kümelerinden biri seçilirse, Visual Studio kaynak dosyalarınızın bir kopyasını WSL dosya sisteminde tutmaz ve bunun yerine bağlı Windows sürücüsü (/mnt/...) üzerinden kaynak dosyalara erişir. Yerel bir IntelliSense deneyimi sağlamak için sistem üst bilgileri windows dosya sistemine otomatik olarak kopyalanır. Özellik Sayfalarıbu kopyaya dahil edilen veya bu kopyanın dışında bırakılan üst bilgileri özelleştirin.

Çoğu durumda, proje dosyaları Windows dosya sisteminde depolandığında WSL 2 daha yavaş olduğundan WSL 2 araç takımını WSL 2 dağıtımlarıyla kullanmak en iyisidir. Daha fazla bilgi edinmek için bkz . WSL 1 ve WSL 2'yi karşılaştırma.

Ayrıca bkz.

Video: WSL 2 Dağıtımları ve Visual Studio 2022 ile C++ hatalarını ayıklama
Visual Studio 2022'i indirin
Visual Studio'da CMake Linux projesi oluşturma
Öğretici: Uzak bir Windows makinesinde CMake projesinde hata ayıklama