Bagikan melalui


Mengonfigurasi proyek Linux CMake di Visual Studio

Dukungan Linux tersedia di Visual Studio 2017 dan yang lebih baru. Untuk melihat dokumentasi untuk versi ini, atur menu menurun Versi yang terletak di atas daftar isi ke Visual Studio 2017 atau Visual Studio 2019.

Topik ini menjelaskan cara menambahkan konfigurasi Linux ke proyek CMake yang menargetkan sistem Linux jarak jauh atau Subsistem Windows untuk Linux (WSL). Ini melanjutkan seri yang dimulai dengan Membuat proyek Linux CMake di Visual Studio. Jika Anda menggunakan MSBuild, lihat Mengonfigurasi Project Linux MSBuild di Visual Studio

Menambahkan konfigurasi Linux

Konfigurasi dapat digunakan untuk menargetkan platform yang berbeda (Windows, WSL, sistem jarak jauh) dengan kode sumber yang sama. Konfigurasi juga digunakan untuk mengatur pengompilasi Anda, meneruskan variabel lingkungan, dan menyesuaikan bagaimana CMake dipanggil. File CMakeSettings.json menentukan beberapa atau semua properti yang tercantum dalam Menyesuaikan pengaturan CMake, ditambah properti lain yang mengontrol pengaturan build pada komputer Linux jarak jauh.

Untuk mengubah pengaturan CMake default di Visual Studio 2017, pilih CMakeChange>CMake Pengaturan>CMakeLists.txt dari menu utama. Atau, klik kanan CMakeLists.txt di Penjelajah Solusi dan pilih Ubah Pengaturan CMake. Visual Studio kemudian membuat file CMakeSettings.json baru di folder proyek akar Anda. Untuk membuat perubahan, buka file dan ubah secara langsung. Untuk informasi selengkapnya, lihat Menyesuaikan pengaturan CMake.

Konfigurasi default untuk Linux-Debug di Visual Studio 2017 (dan Visual Studio 2019 versi 16.0) terlihat seperti ini:

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

Untuk mengubah pengaturan CMake default di Visual Studio 2019 atau yang lebih baru, dari toolbar utama, buka menu dropdown Konfigurasi dan pilih Kelola Konfigurasi.

Cuplikan layar memperlihatkan CMake Kelola Konfigurasi yang disorot di menu dropdown Konfigurasi.

Perintah ini membuka CMake Pengaturan Editor, yang dapat Anda gunakan untuk mengedit file CMakeSettings.json di folder proyek akar Anda. Anda juga dapat membuka file dengan editor JSON dengan mengeklik tombol Edit JSON di kanan atas dialog CMake Pengaturan. Untuk informasi selengkapnya, lihat Menyesuaikan Pengaturan CMake.

Konfigurasi Linux-Debug default di Visual Studio 2019 versi 16.1, dan yang lebih baru, terlihat seperti ini:

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

Dalam Visual Studio 2019 versi 16.6 atau yang lebih baru, Ninja adalah generator default untuk konfigurasi yang menargetkan sistem jarak jauh atau WSL, dibandingkan dengan Unix Makefiles. Untuk informasi selengkapnya, lihat postingan ini di Blog Tim C++.

Untuk informasi selengkapnya tentang pengaturan ini, lihat referensi CMakeSettings.json.

Ketika Anda melakukan build:

  • Jika Anda menargetkan sistem jarak jauh, Visual Studio memilih sistem jarak jauh pertama dalam daftar di bawah Alat>Opsi>Cross Platform>Pengelola Koneksi secara default untuk target jarak jauh.
  • Jika tidak ada koneksi jarak jauh yang ditemukan, Anda akan diminta untuk membuatnya. Untuk informasi selengkapnya, lihat Koneksi ke komputer Linux jarak jauh Anda.

Pilih target Linux

Saat Anda membuka folder proyek CMake, Visual Studio mengurai file CMakeLists.txt , dan menentukan target Windows x86-Debug. Untuk menargetkan sistem Linux jarak jauh, Anda akan mengubah pengaturan proyek berdasarkan pengompilasi Linux Anda. Misalnya, jika Anda menggunakan GCC di Linux dan mengompilasi dengan info debug, pilih: Linux-GCC-Debug atau Linux-GCC-Release.

Jika Anda menentukan target Linux jarak jauh, sumber Anda disalin ke sistem jarak jauh.

Setelah Anda memilih target, CMake berjalan secara otomatis pada sistem Linux untuk menghasilkan cache CMake untuk proyek Anda:

Cuplikan layar Visual Studio memperlihatkan output hasilkan cache CMake di Linux.

Subsistem Windows untuk Linux

Jika Anda menargetkan Subsistem Windows untuk Linux (WSL), Anda tidak perlu menambahkan koneksi jarak jauh.

Untuk menargetkan WSL, pilih Kelola Konfigurasi di menu dropdown konfigurasi di bilah alat utama:

Drop-down konfigurasi CMake dengan Kelola Konfigurasi dipilih

Jendela CMakeSettings.json muncul.

Dialog pengaturan CMake dengan tombol plus disorot yang menambahkan konfigurasi yang dipilih, yaitu Linux-GCC-debug.

Tekan Tambahkan Konfigurasi (tombol '+' hijau) lalu pilih Linux-GCC-Debug atau Linux-GCC-Release jika menggunakan GCC. Gunakan varian Clang jika Anda menggunakan toolset Clang/LLVM. Tekan Pilih lalu Ctrl+S untuk menyimpan konfigurasi.

Visual Studio 2019 versi 16.1 Saat Anda menargetkan WSL, Visual Studio tidak perlu menyalin file sumber dan memelihara dua salinan sinkron dari struktur bangunan Anda karena pengompilasi di Linux memiliki akses langsung ke file sumber Anda di sistem file Windows yang dipasang.

IntelliSense

IntelliSense C++ yang akurat memerlukan akses ke header C++ yang dirujuk oleh file sumber C++ Anda. Visual Studio secara otomatis menggunakan header yang direferensikan oleh proyek CMake dari Linux ke Windows untuk memberikan pengalaman IntelliSense dengan kesetiaan penuh. Untuk informasi selengkapnya, lihat IntelliSense untuk header jarak jauh.

Pengaturan lokal

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 dan lokal target Linux. Anda harus mengonfigurasi target Linux untuk lokal yang diinginkan.

Pengaturan lainnya

Gunakan pengaturan berikut untuk menjalankan perintah pada sistem Linux sebelum dan sesudah membangun, dan sebelum pembuatan CMake. Nilai dapat berupa perintah apa pun yang valid pada sistem jarak jauh. Output disalurkan kembali ke Visual Studio.

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

Langkah berikutnya

Mengonfigurasi sesi penelusuran kesalahan CMake

Lihat juga

Bekerja dengan properti proyek
Menyesuaikan pengaturan CMake
Referensi konfigurasi CMake yang telah ditentukan sebelumnya