Bagikan melalui


Konfigurasikan proyek Linux MSBuild C++ di Visual Studio

Dukungan Linux tersedia di Visual Studio 2017 serta yang lebih baru.

Topik ini menjelaskan cara mengonfigurasi proyek Linux berbasis MSBuild seperti yang dijelaskan dalam Membuat proyek Linux MSBuild C++ di Visual Studio. Untuk proyek Linux CMake, lihat Mengonfigurasi proyek Linux CMake.

Anda dapat mengonfigurasi proyek Linux untuk menargetkan komputer Linux fisik, komputer virtual, atau Subsistem Windows untuk Linux (WSL).

Visual Studio 2019 versi 16.1 serta yang lebih baru:

  • Ketika Anda menargetkan WSL, Anda bisa menghindari operasi penyalinan yang diperlukan untuk membangun serta mendapatkan IntelliSense yang diperlukan ketika Anda menargetkan sistem Linux jarak jauh.

  • Anda bisa menentukan target Linux terpisah untuk membangun serta menelusuri kesalahan.

Pengaturan umum

Untuk melihat opsi konfigurasi, pilih menu Properti >Proyek, atau klik kanan proyek di Penjelajah Solusi dan pilih Properti dari menu konteks. Pengaturan Umum muncul.

Cuplikan layar dialog Halaman Properti Konfigurasi umum.

Secara default, (.out) yang bisa dieksekusi dibuat. Untuk membangun pustaka statis atau dinamis, atau untuk menggunakan Makefile yang ada, gunakan pengaturan Jenis Konfigurasi.

Apabila Anda membangun untuk Subsistem Windows untuk Linux (WSL), WSL Versi 1 dibatasi hingga 64 proses kompilasi paralel. Ini diatur oleh pengaturan Pekerjaan Kompilasi Paralel Maks di properti Konfigurasi > C/C++ > Umum.

Apa pun versi WSL yang Anda gunakan, jika Anda berniat untuk menggunakan lebih dari 64 proses kompilasi paralel, Anda sebaiknya membangun dengan Ninja - yang umumnya akan lebih cepat serta lebih dapat diandalkan. Untuk membangun dengan Ninja, gunakan pengaturan Aktifkan Build Inkremental di properti Konfigurasi > Umum.

Untuk informasi selengkapnya tentang pengaturan di halaman properti, lihat Referensi Halaman Properti Proyek Linux.

Pengaturan jarak jauh

Untuk mengubah pengaturan yang terkait dengan komputer Linux jarak jauh, konfigurasikan pengaturan jarak jauh yang muncul di Umum.

  • Untuk menentukan komputer Linux target jarak jauh, gunakan entri Komputer Build Jarak Jauh. Dengan ini, Anda dapat memilih salah satu koneksi yang dibuat sebelumnya. Untuk membuat entri baru, lihat bagian Menyambungkan ke Komputer Linux Jarak Jauh Anda.

    Cuplikan layar memperlihatkan Mesin Build Jarak Jauh.

    Visual Studio 2019 versi 16.7 dan yang lebih baru: Untuk menargetkan Subsistem Windows untuk Linux (WSL), atur menu drop-down Platform Toolset ke GCC untuk Subsistem Windows pada Linux. Opsi jarak jauh lainnya akan hilang kemudian jalur ke shell WSL default akan muncul di tempatnya:

    Cuplikan layar memperlihatkan mesin build WSL.

    Jika Anda memiliki penginstalan WSL berdampingan, Anda bisa menentukan jalur yang berbeda di sini. Untuk informasi selengkapnya tentang mengelola beberapa distro, lihat Mengelola serta mengonfigurasi Subsistem Windows untuk Linux.

    Anda dapat menentukan target yang berbeda untuk penelusuran kesalahan di halaman Properti Konfigurasi>Penelusuran Kesalahan.

  • Direktori Akar Build Jarak Jauh menentukan lokasi akar tempat proyek dibangun di komputer Linux jarak jauh. Ini akan mengatur default ke ~/projects kecuali diubah.

  • Direktori Proyek Build Jarak Jauh adalah tempat proyek khusus ini akan dibangun di komputer Linux jarak jauh. Ini akan mengatur default ke $(RemoteRootDir)/$(ProjectName), yang akan diperluas ke direktori yang dinamai sesuai dengan proyek saat ini, di bawah direktori akar yang ditetapkan di atas.

Catatan

Untuk mengubah pengkompilasi C dan C++ default, atau Linker serta Archiver yang digunakan untuk membangun proyek, gunakan entri yang sesuai di bagian C/C++ > Umum dan bagian Linker > Umum. Anda bisa menentukan versi GCC atau Clang tertentu, misalnya. Untuk informasi selengkapnya, lihat Properti C/C++ (Linux C++) serta Properti Linker (Linux C++).

Salin sumber (khusus sistem jarak jauh)

Catatan

Bagian ini tidak berlaku ketika menargetkan WSL.

Saat membangun sistem jarak jauh, file sumber pada PC pengembangan Anda disalin ke komputer Linux kemudian dikompilasi di sana. Secara default, semua sumber dalam proyek Visual Studio disalin ke lokasi yang diatur dalam pengaturan di atas. Namun, sumber tambahan juga bisa ditambahkan ke daftar, atau sumber penyalinan bisa dimatikan sepenuhnya, yang merupakan default untuk proyek Makefile.

  • Sumber yang akan disalin menentukan sumber mana yang disalin ke komputer jarak jauh. Secara default, @(SourcesToCopyRemotely) merupakan pengaturan default ke semua file kode sumber dalam proyek, tetapi tidak menyertakan file aset/sumber daya apa pun, seperti gambar.

  • Salin sumber bisa diaktifkan dan dinonaktifkan untuk mengaktifkan serta menonaktifkan penyalinan file sumber ke komputer jarak jauh.

  • Sumber tambahan yang akan disalin memungkinkan Anda menambahkan file sumber tambahan, yang akan disalin ke sistem jarak jauh. Anda bisa menentukan daftar yang dibatasi titik koma, atau Anda bisa menggunakan sintaks := untuk menentukan nama lokal dan jarak jauh yang akan digunakan:

C:\Projects\ConsoleApplication1\MyFile.cpp:=~/projects/ConsoleApplication1/ADifferentName.cpp;C:\Projects\ConsoleApplication1\MyFile2.cpp:=~/projects/ConsoleApplication1/ADifferentName2.cpp;

Membangun peristiwa

Karena semua kompilasi terjadi di komputer jarak jauh (atau WSL), beberapa Peristiwa Build tambahan telah ditambahkan ke bagian Peristiwa Build di Properti Project. Ini adalah Peristiwa Pra-Build Jarak Jauh, Peristiwa Pra-Tautan Jarak Jauh, dan Peristiwa Pasca-Build Jarak Jauh, dan akan terjadi di komputer jarak jauh sebelum atau setelah langkah-langkah individual dalam proses.

Cuplikan layar dialog Halaman Properti memperlihatkan Peristiwa Build.

IntelliSense untuk header pada sistem jarak jauh

Saat Anda menambahkan koneksi baru di Pengelola Sambungan, Visual Studio secara otomatis mendeteksi direktori yang tercakup untuk penyusun pada sistem jarak jauh. Visual Studio kemudian melakukan zip dan menyalin file tersebut ke direktori di komputer Windows lokal Anda. Setelah itu, setiap kali Anda menggunakan koneksi tersebut dalam proyek Visual Studio atau CMake, header di direktori tersebut digunakan untuk menyediakan IntelliSense.

Catatan

Di Visual Studio 2019 versi 16.5 dan yang lebih baru, salinan header jarak jauh telah dioptimalkan. Header sekarang disalin sesuai permintaan saat membuka proyek Linux atau mengonfigurasi CMake untuk target Linux. Salinan terjadi di latar belakang berdasarkan setiap proyek, berdasarkan penyusun yang ditentukan proyek. Untuk informasi selengkapnya, lihat Peningkatan Akurasi serta Performa IntelliSense Linux.

Fungsionalitas ini tergantung pada komputer Linux yang telah memasang zip. Anda dapat memasang zip dengan menggunakan perintah apt-get ini:

sudo apt install zip

Untuk mengelola cache header Anda, arahkan navigasi ke Opsi Alat >, Lintas Platform > Pengelola Sambungan > Header Jarak Jauh Pengelola IntelliSense. Untuk memperbarui cache header setelah membuat perubahan pada komputer Linux Anda, pilih koneksi jarak jauh lalu pilih Perbarui. Pilih Hapus untuk menghapus header tanpa menghapus koneksi itu sendiri. Pilih Jelajahi untuk membuka direktori lokal di File Explorer. Perlakukan folder ini sebagai hanya-baca. Untuk mengunduh header bagi koneksi yang sudah ada yang dibuat sebelum Visual Studio 2017 versi 15.3, pilih koneksi kemudian pilih Unduh.

Cuplikan layar memperlihatkan kotak dialog Opsi dengan Cross Platform > Pengelola Sambungan > Remote Headers IntelliSense Manager dipilih.

Cuplikan layar memperlihatkan kotak dialog Opsi dengan Lintas Platform > Pengelola Sambungan dipilih.

Anda bisa mengaktifkan pengelogan untuk membantu memecahkan masalah koneksi:

Cuplikan layar dialog Opsi memperlihatkan opsi Pengelogan Jarak Jauh.

Lokal target Linux

Pengaturan bahasa Visual Studio tidak disebarluaskan ke target Linux karena Visual Studio tidak mengelola atau mengonfigurasi paket yang dipasang. Pesan yang ditampilkan di jendela Output, seperti kesalahan build, ditampilkan menggunakan bahasa serta lokal target Linux. Anda perlu mengonfigurasi target Linux untuk lokal yang diinginkan.

Lihat juga

Mengatur properti penyusun dan build
C++ Properti Umum (Linux C++)
VC++ Direktori (Linux C++)
Salin Sumber Properti Proyek (Linux C++)
Properti Peristiwa Build (Linux C++)