Share via


Panduan: Membangun dan men-debug C++ dengan WSL 2 dan Visual Studio 2022

Visual Studio 2022 memperkenalkan toolset C++ asli untuk pengembangan Subsistem Windows untuk Linux versi 2 (WSL 2). Toolset ini sekarang tersedia di Visual Studio 2022 versi 17.0 atau yang lebih tinggi.

WSL 2 adalah versi baru yang direkomendasikan dari Subsistem Windows untuk Linux (WSL). Ini memberikan performa sistem file Linux yang lebih baik, dukungan GUI, dan kompatibilitas panggilan sistem penuh. Toolset WSL 2 Visual Studio memungkinkan Anda menggunakan Visual Studio untuk membangun dan men-debug kode C++ pada distro WSL 2 tanpa menambahkan koneksi SSH. Anda sudah dapat membuat dan men-debug kode C++ pada distro WSL 1 menggunakan toolset WSL 1 asli yang diperkenalkan di Visual Studio 2019 versi 16.1.

Toolset WSL 2 Visual Studio mendukung proyek Linux berbasis CMake dan MSBuild. CMake adalah rekomendasi kami untuk semua pengembangan lintas platform C++ dengan Visual Studio. Kami merekomendasikan CMake karena membangun dan men-debug proyek yang sama pada Windows, WSL, dan sistem jarak jauh.

Untuk presentasi video informasi dalam topik ini, lihat Video: Debug C++ dengan Distribusi WSL 2 dan Visual Studio 2022.

Latar belakang toolset WSL 2

Dukungan lintas platform C++ di Visual Studio mengasumsikan semua file sumber berasal dari sistem file Windows. Saat menargetkan distro WSL 2, Visual Studio menjalankan perintah lokal rsync untuk menyalin file dari sistem file Windows ke sistem file WSL. Salinan lokal rsync tidak memerlukan intervensi pengguna. Ini terjadi secara otomatis saat Visual Studio mendeteksi Anda menggunakan distro WSL 2. Untuk mempelajari selengkapnya tentang perbedaan antara WSL 1 dan WSL 2, lihat Membandingkan WSL 1 dan WSL 2.

Integrasi CMake Presets di Visual Studio mendukung toolset WSL 2. Untuk mempelajari selengkapnya, lihat Integrasi CMake Presets di Visual Studio dan Visual Studio Code dan Mengonfigurasi dan membangun dengan CMake Presets di Visual Studio. Ada juga informasi lebih lanjut dalam artikel ini di bawah Pertimbangan proyek Advanced WSL 2 dan CMake.

Menginstal alat build

Instal alat yang diperlukan untuk membangun dan men-debug di WSL 2. Anda akan menginstal versi terbaru CMake menggunakan penyebaran biner CMake Visual Studio di langkah selanjutnya.

  1. Instal WSL dan distro WSL 2 dengan mengikuti instruksi di Menginstal WSL.

  2. Dengan asumsi penggunaan apt distro Anda (panduan ini menggunakan Ubuntu), gunakan perintah berikut untuk menginstal alat build yang diperlukan pada distro WSL 2 Anda:

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

    Perintah apt di atas menginstal:

    • Pengkompilasi C++
    • gdb
    • CMake
    • rsync
    • zip
    • Generator sistem build yang mendasar

Pengembangan CMake lintas platform dengan distro WSL 2

Panduan ini menggunakan GCC dan Ninja di Ubuntu. Dan Visual Studio 2022 versi 17.0 Pratinjau 2 atau yang lebih baru.

Visual Studio mendefinisikan proyek CMake sebagai folder dengan CMakeLists.txt file di akar proyek. Dalam panduan ini, Anda membuat proyek CMake baru dengan menggunakan templat Visual Studio CMake Project :

  1. Dari layar Visual Studio Memulai , pilih Buat proyek baru.

    Cuplikan layar kotak dialog Mulai Visual Studio 2022. Opsi yang tersedia adalah: Kloning repositori, Buka proyek atau solusi, Buka folder lokal, Buat proyek baru, atau Lanjutkan tanpa kode.":::

  2. Di kotak teks Cari templat , ketik "cmake". Pilih jenis Proyek CMake dan pilih Berikutnya. Beri nama dan lokasi proyek, lalu pilih Buat.

  3. Aktifkan integrasi CMake Presets Visual Studio. Pilih Opsi>Alat>CMake>Umum. Pilih Pilih Gunakan Preset CMake untuk mengonfigurasi, membangun, dan menguji, lalu pilih OK. Sebagai gantinya, Anda bisa menambahkan CMakePresets.json file ke akar proyek. Untuk informasi selengkapnya, lihat Mengaktifkan integrasi CMake Presets.

    Cuplikan layar opsi proyek Visual Studio. Cmake > General dipilih.

    Dalam grup file konfigurasi CMake, 'Gunakan Preset CMake jika tersedia, jika tidak, gunakan CMake Pengaturan.json' dipanggil dan dipilih.

  4. Untuk mengaktifkan integrasi: dari menu utama, pilih File>Tutup Folder. Halaman Memulai muncul. Di bawah Buka terbaru, pilih folder yang baru saja Anda tutup untuk membuka kembali folder.

  5. Ada tiga dropdown di seluruh bilah menu utama Visual Studio. Gunakan menu dropdown di sebelah kiri untuk memilih sistem target aktif Anda. Ini adalah sistem tempat CMake dipanggil untuk mengonfigurasi dan membangun proyek. Kueri Visual Studio untuk penginstalan WSL dengan wsl -l -v. Dalam gambar berikut, WSL2: Ubuntu-20.04 ditampilkan sebagai Sistem Target.

    Cuplikan layar dropdown sistem target Visual Studio. WSL2: Ubuntu-20.04 adalah yang dipilih.

    Catatan

    Jika Visual Studio mulai mengonfigurasi proyek Anda secara otomatis, baca langkah 11 untuk mengelola penyebaran biner CMake, lalu lanjutkan ke langkah di bawah ini. Untuk menyesuaikan perilaku ini, lihat Mengubah konfigurasi otomatis dan pemberitahuan cache.

  6. Gunakan menu dropdown di tengah untuk memilih Konfigurasi Preset aktif Anda. Konfigurasikan Preset memberi tahu Visual Studio cara memanggil CMake dan menghasilkan sistem build yang mendasarinya. Pada langkah 7, Preset Konfigurasi aktif adalah Preset default linux yang dibuat oleh Visual Studio. Untuk membuat Preset Konfigurasi kustom, pilih Kelola Konfigurasi... Untuk informasi selengkapnya tentang Mengonfigurasi Preset, lihat Memilih Prasetel Konfigurasi dan Edit Preset.

    Cuplikan layar dropdown prasetel konfigurasi aktif Visual Studio. Kelola Konfigurasi... dipilih.

  7. Gunakan menu dropdown di sebelah kanan untuk memilih Build Preset aktif Anda. Build Presets memberi tahu Visual Studio cara memanggil build. Dalam ilustrasi untuk langkah 7, Preset Build aktif adalah Preset Build Default yang dibuat oleh Visual Studio. Untuk informasi selengkapnya tentang Build Presets, lihat Memilih Build Preset.

  8. Konfigurasikan proyek di WSL 2. Jika pembuatan proyek tidak dimulai secara otomatis, maka panggil konfigurasi secara manual dengan Project>Configureproject-name

    Cuplikan layar dropdown konfigurasi proyek Visual Studio. Konfigurasikan CMakeProject dipilih.

  9. Jika Anda tidak memiliki versi CMake yang didukung yang terinstal pada distro WSL 2 Anda, maka Visual Studio meminta Anda di bawah pita menu utama untuk menyebarkan versi CMake terbaru. Pilih Ya untuk menyebarkan biner CMake ke distro WSL 2 Anda.

    Cuplikan layar perintah di bawah toolbar Visual Studio

    Pengguna diminta apakah akan menginstal biner C Make terbaru dari C make . org karena versi C Make yang didukung tidak diinstal."

  10. Konfirmasikan bahwa langkah konfigurasi selesai dan Anda dapat melihat pesan selesai pembuatan CMake di jendela Output di bawah panel CMake . File build ditulis ke direktori dalam sistem file distro WSL 2.

    Cuplikan layar jendela Output Visual Studio. Ini berisi pesan yang dihasilkan selama langkah konfigurasi, termasuk pembuatan C Make selesai.

  11. Pilih target debug aktif. Menu dropdown debug mencantumkan semua target CMake yang tersedia untuk proyek.

    Cuplikan layar menu dropdown debug Visual Studio. CMakeProject dipilih.

  12. Perluas subfolder proyek di Penjelajah Solusi. CMakeProject.cpp Dalam file, atur titik henti di main(). Anda juga dapat menavigasi ke tampilan target CMake dengan memilih tombol Lihat Pemilih di Penjelajah Solusi, disorot dalam cuplikan layar berikut:

    Cuplikan layar penjelajah solusi Visual Studio memperlihatkan tombol untuk beralih tampilan. Ini terletak di sebelah kanan tombol beranda.

  13. Pilih Mulai Debug>, atau tekan F5. Build proyek Anda, yang dapat dieksekusi diluncurkan pada distro WSL 2 Anda, dan Visual Studio menghentikan eksekusi pada titik henti. Output program Anda (dalam hal ini, "Hello CMake.") terlihat di Jendela Konsol Linux:

    Cuplikan layar program hello world yang sedang berjalan.

    Jendela konsol Visual Studio Linux menampilkan output program: 'Hello C Make.' Jendela editor menunjukkan program halo dunia. Eksekusi berhenti pada titik henti pada baris yang mengatakan kembali 0;."

Anda sekarang telah membuat dan men-debug aplikasi C++ dengan WSL 2 dan Visual Studio 2022.

Pertimbangan proyek WSL 2 dan CMake tingkat lanjut

Visual Studio hanya menyediakan dukungan asli untuk WSL 2 untuk proyek CMake yang digunakan CMakePresets.json sebagai file konfigurasi aktif. Untuk bermigrasi dari CMakeSettings.json ke , lihat Mengaktifkan integrasi CMake Presets di Visual StudioCMakePresets.json.

Jika Anda menargetkan distribusi WSL 2 dan Anda tidak ingin menggunakan toolset WSL 2, maka di peta vendor Visual Studio Remote Pengaturan di CMakePresets.json, atur forceWSL1Toolset ke true . Untuk informasi selengkapnya, lihat Peta vendor Pengaturan Jarak Jauh Visual Studio.

Jika forceWSL1Tooslet diatur ke true, maka Visual Studio tidak mempertahankan salinan file sumber Anda di sistem file WSL. Sebaliknya, ia mengakses file sumber di drive Windows yang dipasang (/mnt/...).

Dalam kebanyakan kasus, yang terbaik adalah menggunakan toolset WSL 2 dengan distribusi WSL 2 karena WSL 2 lebih lambat ketika file proyek disimpan dalam sistem file Windows. Untuk mempelajari selengkapnya tentang performa sistem file di WSL 2, lihat Membandingkan WSL 1 dan WSL 2.

Tentukan pengaturan tingkat lanjut seperti jalur ke direktori di WSL 2 tempat proyek disalin, opsi sumber salin, dan argumen perintah rsync, di peta vendor Pengaturan Jarak Jauh Visual Studio di CMakePresets.json. Untuk informasi selengkapnya, lihat Peta vendor Pengaturan Jarak Jauh Visual Studio.

Header sistem masih secara otomatis disalin ke sistem file Windows untuk menyediakan pengalaman IntelliSense asli. Anda dapat menyesuaikan header yang disertakan atau dikecualikan dari salinan ini di peta vendor Pengaturan Jarak Jauh Visual Studio di CMakePresets.json.

Anda dapat mengubah mode IntelliSense, atau menentukan opsi IntelliSense lainnya, di Visual Studio Pengaturan peta vendor di CMakePresets.json. Untuk detail tentang peta vendor, lihat Peta vendor Visual Studio Remote Pengaturan.

Proyek Linux berbasis WSL 2 dan MSBuild

CMake direkomendasikan untuk semua pengembangan lintas platform C++ dengan Visual Studio karena memungkinkan Anda untuk membangun dan men-debug proyek yang sama di Windows, WSL, dan sistem jarak jauh.

Tetapi Anda mungkin memiliki proyek Linux berbasis MSBuild.

Jika Anda memiliki proyek Linux berbasis MSBuild, maka Anda dapat meningkatkan ke toolset WSL 2 di Visual Studio. Klik kanan proyek di penjelajah solusi, lalu pilih Properti>Set Alat Platform Umum:>

Cuplikan layar dropdown Visual Studio dengan Platform Toolset dipilih, dan di sebelah kanan, dropdown lain dengan WSL2 Toolset dipilih.

Jika Anda menargetkan distribusi WSL 2 dan tidak ingin menggunakan toolset WSL 2, lalu di menu dropdown Platform Toolset, pilih GCC untuk Subsistem Windows untuk Linux atau Clang untuk toolset Subsistem Windows untuk Linux. Jika salah satu toolset ini dipilih, Visual Studio tidak mempertahankan salinan file sumber Anda di sistem file WSL dan sebaliknya mengakses file sumber melalui drive Windows yang dipasang (/mnt/...). Header sistem masih secara otomatis disalin ke sistem file Windows untuk memberikan pengalaman IntelliSense asli. Kustomisasi header yang disertakan atau dikecualikan dari salinan ini di Halaman>Properti Umum.

Dalam kebanyakan kasus, yang terbaik adalah menggunakan toolset WSL 2 dengan distribusi WSL 2 karena WSL 2 lebih lambat ketika file proyek disimpan dalam sistem file Windows. Untuk mempelajari lebih lanjut, lihat Membandingkan WSL 1 dan WSL 2.

Lihat juga

Video: Debug C++ dengan Distribusi WSL 2 dan Visual Studio 2022
Unduh Visual Studio 2022
Membuat proyek CMake Linux di Visual Studio
Tutorial: Men-debug proyek CMake pada komputer Windows jarak jauh