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.
Instal WSL dan distro WSL 2 dengan mengikuti instruksi di Menginstal WSL.
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 :
Dari layar Visual Studio Memulai , pilih Buat proyek baru.
Opsi yang tersedia adalah: Kloning repositori, Buka proyek atau solusi, Buka folder lokal, Buat proyek baru, atau Lanjutkan tanpa kode.":::
Di kotak teks Cari templat , ketik "cmake". Pilih jenis Proyek CMake dan pilih Berikutnya. Beri nama dan lokasi proyek, lalu pilih Buat.
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.Dalam grup file konfigurasi CMake, 'Gunakan Preset CMake jika tersedia, jika tidak, gunakan CMake Pengaturan.json' dipanggil dan dipilih.
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.
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.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.
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.
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.
Konfigurasikan proyek di WSL 2. Jika pembuatan proyek tidak dimulai secara otomatis, maka panggil konfigurasi secara manual dengan Project>Configureproject-name
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.
Pengguna diminta apakah akan menginstal biner C Make terbaru dari C make . org karena versi C Make yang didukung tidak diinstal."
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.
Pilih target debug aktif. Menu dropdown debug mencantumkan semua target CMake yang tersedia untuk proyek.
Perluas subfolder proyek di Penjelajah Solusi.
CMakeProject.cpp
Dalam file, atur titik henti dimain()
. Anda juga dapat menavigasi ke tampilan target CMake dengan memilih tombol Lihat Pemilih di Penjelajah Solusi, disorot dalam cuplikan layar berikut: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: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:>
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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk