Proyek CMake di Visual Studio

CMake adalah alat sumber terbuka lintas platform untuk menentukan proses build yang berjalan di beberapa platform. Artikel ini mengasumsikan Anda terbiasa dengan CMake. Untuk informasi selengkapnya tentang CMake, lihat dokumentasi CMake. Tutorial CMake adalah titik awal yang baik untuk mempelajari lebih lanjut.

Catatan

CMake telah menjadi semakin terintegrasi dengan Visual Studio selama beberapa rilis terakhir. Untuk melihat dokumentasi untuk versi Visual Studio pilihan Anda, gunakan kontrol pemilih Versi. Kontrol tersebut dapat ditemukan di bagian atas daftar isi pada halaman ini.

Dukungan asli Visual Studio untuk CMake memungkinkan Anda mengedit, membangun, dan men-debug proyek CMake di Windows, Subsistem Windows untuk Linux (WSL), dan sistem jarak jauh dari instans Visual Studio yang sama. File proyek CMake (seperti CMakeLists.txt) digunakan langsung oleh Visual Studio untuk tujuan IntelliSense dan penjelajahan. cmake.exe dipanggil langsung oleh Visual Studio untuk konfigurasi dan build CMake.

Penginstalan

Alat C++ CMake untuk Windows diinstal sebagai bagian dari pengembangan Desktop dengan C++ dan Pengembangan Linux dengan beban kerja C++ . Alat C++ CMake untuk Pengembangan Windows dan Linux dengan C++ diperlukan untuk pengembangan CMake lintas platform.

Cuplikan layar alat penginstal Visual Studio.

Di alat penginstal, pengembangan Desktop dengan dropdown C plus plus dipilih dan alat C plus plus C Make untuk Windows dipilih."

Untuk informasi selengkapnya, lihat Menginstal beban kerja C++ Linux di Visual Studio.

Integrasi IDE

Saat Anda membuka folder yang CMakeLists.txt berisi file, hal-hal berikut ini terjadi.

Cuplikan layar dialog pertama yang terbuka saat Visual Studio dimulai.

Dialog menawarkan opsi ini: mengkloning repositori, membuka proyek atau solusi, membuka folder lokal, atau membuat proyek baru. Buka folder lokal dipanggil dalam cuplikan layar.

  • Visual Studio menambahkan item CMake ke menu Proyek , dengan perintah untuk menampilkan dan mengedit skrip CMake.

  • Penjelajah Solusi menampilkan struktur folder dan file.

  • Visual Studio menjalankan CMake dan menghasilkan file cache CMake (CMakeCache.txt) untuk konfigurasi default. Baris perintah CMake ditampilkan di Jendela Output, bersama dengan output lain dari CMake.

  • Di latar belakang, Visual Studio mulai mengindeks file sumber untuk mengaktifkan IntelliSense, menelusuri informasi, merefaktor, dan sebagainya. Saat Anda bekerja, Visual Studio memantau perubahan di editor dan juga pada disk untuk menjaga indeksnya tetap sinkron dengan sumbernya.

Catatan

Mulai visual Studio 2022 versi 17.1 Pratinjau 2, jika tingkat CMakeLists.txt atas Anda ada di subfolder dan bukan di akar ruang kerja, Anda akan diminta apakah Anda ingin mengaktifkan integrasi CMake atau tidak. Untuk informasi selengkapnya, lihat Aktivasi parsial CMake.

Setelah pembuatan cache CMake berhasil, Anda juga dapat melihat proyek Anda diatur secara logis menurut target. Pilih tombol Pilih Tampilan pada toolbar Penjelajah Solusi. Dari daftar di Penjelajah Solusi - Tampilan, pilih Tampilan Target CMake dan tekan Enter untuk membuka tampilan target:

Cuplikan layar jendela Tampilan Penjelajah Solusi. Tampilan folder terbuka. Opsi C Buat Tampilan Target disorot.

Pilih tombol Perlihatkan Semua File di bagian atas Penjelajah Solusi untuk melihat semua output yang dihasilkan CMake di out/build/<config> folder.

CMakeLists.txt Gunakan file di setiap folder proyek seperti yang Anda lakukan di proyek CMake apa pun. Anda dapat menentukan file sumber, menemukan pustaka, mengatur opsi pengkompilasi dan linker, dan menentukan informasi terkait sistem build lainnya. Untuk informasi selengkapnya tentang layanan bahasa CMake yang disediakan oleh Visual Studio, lihat Mengedit file CMakeLists.txt.

Visual Studio menggunakan file konfigurasi CMake untuk mendorong pembuatan dan build cache CMake. Untuk informasi selengkapnya, lihat Mengonfigurasi proyek CMake dan Membangun proyek CMake.

Untuk meneruskan argumen ke yang dapat dieksekusi pada waktu debug, Anda dapat menggunakan file lain yang disebut launch.vs.json. Untuk informasi selengkapnya tentang penelusuran kesalahan proyek CMake lintas platform di Visual Studio, lihat Men-debug proyek CMake.

Sebagian besar fitur bahasa Visual Studio dan C++ didukung oleh proyek CMake di Visual Studio. Contohnya meliputi:

Catatan

Untuk jenis proyek Open Folder lainnya, file CppProperties.json JSON tambahan digunakan. File ini tidak relevan untuk proyek CMake.

Mengonfigurasi proyek CMake

Langkah konfigurasi CMake menghasilkan sistem build proyek. Ini setara dengan memanggil cmake.exe dari baris perintah. Untuk informasi selengkapnya tentang langkah konfigurasi CMake, lihat dokumentasi CMake.

Visual Studio menggunakan file konfigurasi CMake untuk mendorong pembuatan dan build CMake. CMakePresets.json didukung oleh Visual Studio 2019 versi 16.10 atau yang lebih baru dan merupakan file konfigurasi CMake yang direkomendasikan. CMakePresets.json didukung langsung oleh CMake dan dapat digunakan untuk mendorong pembuatan dan build CMake dari Visual Studio, dari Visual Studio Code, dalam alur Integrasi Berkelanjutan, dan dari baris perintah di Windows, Linux, dan Mac. Untuk informasi selengkapnya tentang CMakePresets.json, lihat Mengonfigurasi dan membangun dengan CMake Presets. CMakeSettings.json tersedia untuk pelanggan yang menggunakan versi Visual Studio yang lebih lama. Untuk informasi selengkapnya tentang CMakeSettings.json, lihat Menyesuaikan pengaturan build CMake.

Saat Anda membuat perubahan signifikan pada file konfigurasi CMake atau CMakeLists.txt file, Visual Studio akan secara otomatis menjalankan langkah konfigurasi CMake. Anda dapat memanggil langkah konfigurasi secara manual: Pilih Project > Configure Cache dari toolbar. Anda juga dapat mengubah preferensi konfigurasi di Opsi>Alat>CMake>Umum.

Cuplikan layar opsi konfigurasi CMake di jendela pengaturan Visual Studio.

Pengaturan konfigurasi CMake dipanggil. Tampilkan pemberitahuan cache C Make dipilih. Di bagian 'Saat cache kedaluarsa:', opsi 'Jangan pernah menjalankan langkah konfigurasi secara otomatis' dipilih.

Jika langkah konfigurasi selesai tanpa kesalahan, informasi yang tersedia mendorong C++ IntelliSense dan layanan bahasa. Ini juga digunakan dalam operasi build dan debug.

Anda juga dapat membuka cache CMake yang ada di Visual Studio. Untuk informasi selengkapnya, lihat Membuka cache yang sudah ada.

Menyesuaikan umpan balik dan pemberitahuan konfigurasi

Secara default, sebagian besar pesan konfigurasi ditekan kecuali ada kesalahan. Untuk melihat semua pesan, pilih Opsi>Alat>CMake>Aktifkan output diagnostik CMake verbose.

Anda juga dapat menonaktifkan semua pemberitahuan cache CMake (bilah emas) dengan membatalkan pilihan Tampilkan pemberitahuan cache CMake.

Pemecahan masalah kesalahan cache CMake

Jika Anda memerlukan informasi selengkapnya tentang status cache CMake untuk mendiagnosis masalah, buka menu utama Proyek atau CMakeLists.txt menu konteks di Penjelajah Solusi untuk menjalankan salah satu perintah ini:

  • Lihat CMakeCache.txt membuka CMakeCache.txt file dari direktori build di editor. Setiap pengeditan yang Anda buat di sini akan CMakeCache.txt dihapus jika Anda membersihkan cache. Untuk membuat perubahan yang bertahan setelah Anda membersihkan cache, lihat Menyesuaikan pengaturan CMake atau Mengonfigurasi dan membangun dengan CMake Presets.

  • Menghapus Cache dan Mengonfigurasi Ulang menghapus direktori build dan mengonfigurasi ulang dari cache bersih.

  • Mengonfigurasi Cache memaksa langkah buat untuk dijalankan meskipun Visual Studio mempertimbangkan lingkungan yang terbaru.

Membangun proyek CMake

Langkah build CMake membangun pohon biner proyek yang sudah dibuat. Ini setara dengan memanggil cmake --build dari baris perintah. Untuk informasi selengkapnya tentang langkah build CMake, lihat dokumentasi CMake.

Untuk membangun proyek CMake, Anda memiliki pilihan berikut:

  1. Di toolbar, temukan menu dropdown Item Startup. Pilih target pilihan dan tekan F5, atau pilih tombol Jalankan pada toolbar. Proyek secara otomatis dibangun terlebih dahulu, sama seperti solusi Visual Studio.

  2. Klik kanan target CMake dengan Tampilan Target CMake aktif di Penjelajah Solusi dan pilih Bangun dari menu konteks.

  3. Dari menu utama, pilih Bangun > Semua. Pastikan target CMake sudah dipilih di menu dropdown Item Startup di toolbar.

Seperti yang Anda harapkan, hasil build ditampilkan di Jendela Output dan Daftar Kesalahan.

Cuplikan layar jendela Daftar Kesalahan Visual Studio Peringatan build CMake tentang konversi yang dapat mengakibatkan hilangnya data seperti mengonversi dari float ke bilangan bulat, terlihat. :::image-end:::

Mengedit pengaturan build

Visual Studio menggunakan file konfigurasi CMake untuk mendorong build CMake. File konfigurasi CMake merangkum opsi build seperti sakelar alat build asli dan variabel lingkungan. Jika CMakePresets.json adalah file konfigurasi aktif Anda, lihat Mengonfigurasi dan membangun dengan CMake Presets. Jika CMakeSettings.json adalah file konfigurasi aktif Anda, lihat Menyesuaikan pengaturan build CMake. CMakePresets.json tersedia di Visual Studio 2019 versi 16.10 atau yang lebih baru dan merupakan file konfigurasi CMake yang direkomendasikan.

Men-debug proyek CMake

Semua target CMake yang dapat dieksekusi ditampilkan di menu dropdown Item Startup di toolbar. Untuk memulai penelusuran kesalahan, pilih salah satu dan tekan tombol Debug > Mulai Debugging di toolbar. Dalam proyek CMake, opsi "Dokumen saat ini" hanya valid untuk file .cpp.

Cuplikan layar menu dropdown debug Visual Studio.

Dropdown memiliki opsi ini: Tampilkan/ Sembunyikan target debug, dokumen saat ini, sampel (yang disorot), box2d_tests, dan samples-noGUI.

Perintah Debug atau F5 terlebih dahulu membangun proyek jika perubahan telah dilakukan sejak build sebelumnya. Perubahan pada file konfigurasi CMake (CMakePresets.json atau CMakeSettings.json) atau menyebabkan CMakeLists.txt cache CMake diregenerasi.

Anda dapat menyesuaikan sesi penelusuran kesalahan CMake dengan mengatur properti dalam launch.vs.json file. Untuk menyesuaikan pengaturan debug untuk target tertentu, pilih target di menu dropdown Item Startup dan tekan Debug Debug > dan Luncurkan Pengaturan untuk <target> aktif. Untuk informasi selengkapnya tentang sesi penelusuran kesalahan CMake, lihat Mengonfigurasi sesi penelusuran kesalahan CMake.

Hanya Kode Saya untuk proyek CMake

Saat Anda membuat untuk Windows menggunakan pengkompilasi MSVC, proyek CMake memiliki dukungan untuk penelusuran kesalahan Just My Code. Untuk mengubah pengaturan Hanya Kode Saya, buka Opsi>Alat>Debugging>Umum.

Edit dan Lanjutkan untuk proyek CMake

Saat Anda membuat untuk Windows dengan pengkompilasi MSVC, proyek CMake memiliki dukungan untuk Edit dan Lanjutkan. Tambahkan kode berikut ke file Anda CMakeLists.txt untuk mengaktifkan Edit dan Lanjutkan.

if(MSVC)
  target_compile_options(<target> PUBLIC "/ZI")
  target_link_options(<target> PUBLIC "/INCREMENTAL")
endif()

Melampirkan ke proyek CMake yang berjalan di Linux

Visual Studio memungkinkan Anda untuk men-debug proses yang berjalan pada sistem Linux jarak jauh atau WSL dan men-debugnya dengan debugger GDB. Untuk memulai, pilih Lampirkan Debug>ke Proses..., atur jenis Koneksi ke SSH, dan pilih target Koneksi ion Anda dari daftar koneksi di Pengelola Sambungan. Pilih proses dari daftar proses yang tersedia dan tekan Lampirkan. GDB harus diinstal pada komputer Linux Anda. Untuk informasi selengkapnya tentang koneksi SSH, lihat Pengelola Sambungan

Cuplikan layar menu Lampirkan ke Proses di Visual Studio.

Opsi berikut tersedia pada dialog: jenis Koneksi ion (diatur ke SSH), target koneksi (diatur ke demo@ 172. 20. 60. 6), dan daftar proses yang tersedia yang dapat Anda lampirkan."

Aktivasi parsial CMake

Di Visual Studio 2022 versi 17.1 dan yang lebih baru, fungsionalitas CMake tidak akan diaktifkan secara otomatis jika folder akar Anda tidak berisi CMakeLists.txt file. Sebagai gantinya, dialog akan meminta Anda tentang apakah Anda ingin mengaktifkan fungsionalitas CMake untuk proyek Anda. Jika Anda menolak, pembuatan cache CMake tidak akan dimulai dan konfigurasi CMake (dari CMakeSettings.json atau CMakePresets.json) tidak akan muncul di dropdown konfigurasi. Jika menerima, Anda akan dibawa ke file konfigurasi tingkat ruang kerja, CMakeWorkspaceSettings.json (disimpan di .vs direktori), untuk menentukan folder yang ingin Anda aktifkan CMake-nya. (Folder ini berisi file akar CMakeLists.txt Anda).

Properti yang diterima adalah:

Properti Deskripsi
enableCMake Aktifkan integrasi Visual Studio untuk ruang kerja ini.
sourceDirectory String atau array string yang menentukan direktori atau direktori dengan CMakeLists.txt. Makro (seperti ${workspaceRoot}) diperbolehkan. Jalur relatif didasarkan pada akar ruang kerja. Direktori di luar ruang kerja saat ini akan diabaikan.

Anda dapat menjangkau CMakeWorkspaceSettings.json perintah menu Pengaturan Ruang Kerja Project>CMake kapan saja, bahkan jika fungsionalitas CMake saat ini dinonaktifkan.

Buka cache yang sudah ada

Saat Anda membuka file cache CMake yang ada (CMakeCache.txt), Visual Studio tidak mencoba mengelola cache dan pohon build untuk Anda. Alat kustom atau pilihan Anda memiliki kontrol penuh atas cara CMake mengonfigurasi proyek Anda.

Anda dapat menambahkan cache CMake yang ada ke proyek terbuka. Ini dilakukan dengan cara yang sama seperti Anda akan menambahkan konfigurasi baru. Untuk informasi selengkapnya, lihat posting blog kami tentang membuka cache yang ada di Visual Studio.

Catatan

Pengalaman cache default yang ada bergantung pada cmake-server, yang dihapus dari CMake di versi 3.20. Untuk terus menggunakan fungsionalitas cache yang ada di Visual Studio 2019 versi 16.10 dan yang lebih baru, lakukan salah satu langkah berikut:

  • Instal CMake versi 3.19 atau yang lebih rendah secara manual. Kemudian, atur cmakeExecutable properti di konfigurasi cache yang ada untuk menggunakan versi CMake tersebut.
  • Dalam konfigurasi cache yang ada, atur cacheGenerationCommand properti untuk memungkinkan Visual Studio meminta file API berbasis file CMake yang diperlukan. Untuk informasi selengkapnya tentang properti tersebut, lihat Referensi CMake Pengaturan.json.
  • Gunakan file kueri untuk meminta file API berbasis file CMake saat membuat cache Anda sebelum dibuka di Visual Studio. Untuk instruksi file kueri, lihat bagian berikutnya, Pemecahan masalah cache CMake Tingkat Lanjut.

Pemecahan masalah cache CMake tingkat lanjut

Visual Studio menggunakan API berbasis file CMake (dalam versi 3.14 dan yang lebih baru) untuk mengisi editor dengan informasi khusus untuk struktur proyek Anda. Untuk informasi selengkapnya, lihat posting blog tim C++ di ruang kerja multi-root dan API berbasis file.

Sebelum membuat cache CMake, alat kustom atau pilihan Anda mungkin perlu membuat file kueri bernama .cmake/api/v1/query/client-MicrosoftVS/query.json di folder output build Anda (folder yang berisi CMakeCache.txt). File kueri harus berisi konten ini:

{"requests":[{"kind":"cache","version":2},{"kind":"cmakeFiles","version":1},{"kind":"codemodel","version":2}]}

Saat alat kustom atau pilihan Anda menghasilkan cache Anda, CMake menempatkan file di bawah .cmake/api/v1/response yang digunakan Visual Studio untuk mengisi editor dengan informasi khusus untuk struktur proyek Anda.

CMakeLists.txt Mengedit file

Untuk mengedit CMakeLists.txt file, klik kanan file di Penjelajah Solusi dan pilih Buka. Jika Anda membuat perubahan pada file, bilah status kuning muncul dan memberi tahu Anda bahwa IntelliSense akan diperbarui. Ini memberi Anda kesempatan untuk membatalkan operasi pembaruan. Untuk informasi tentang CMakeLists.txt, lihat dokumentasi CMake.

Cuplikan layar file C Make Lists .txt sedang diedit di Visual Studio.

Ini berisi proyek baris (hello-cmake), add_subdirectory (pengujian), add_executable (hello hello.cpp), dan instal (TARGETS hello DESTINATION hello/bin). Pesan di bagian atas jendela mengatakan bahwa info c plus plus IntelliSense akan di-refresh setelah C Make selesai menghasilkan cache.

Segera setelah Anda menyimpan file, langkah konfigurasi secara otomatis berjalan lagi dan menampilkan informasi di jendela Output . Kesalahan dan peringatan ditampilkan di jendela Daftar Kesalahan atau Output . Klik dua kali pada kesalahan di Daftar Kesalahan untuk menavigasi ke baris yang menyinggung di CMakeLists.txt.

Cuplikan layar kesalahan C Make di daftar kesalahan Visual Studio.

Pesan kesalahan C Make pada baris 3 CMakeLists.txt disorot. Detailnya adalah bahwa C Make tidak dapat menemukan file konfigurasi paket yang disediakan oleh sqlite3. C Make mencarinya di CMAKE_MODULE_PATH tetapi tidak dapat menemukannya. Sarannya adalah menambahkan awalan penginstalan 'sqlite3' ke CMAKE_PREFIX_PATH atau mengatur sqlite3_DIR ke direktori yang berisi sqlite3Config.cmake dan/atau sqlitet3-config.cmake.

Layanan bahasa untuk CMake

Layanan bahasa untuk CMake tersedia di Visual Studio 2019 versi 16.5 atau yang lebih baru. Ini mendukung fitur navigasi kode seperti Definisi Buka, Intip Definisi, dan Temukan Semua Referensi untuk variabel, fungsi, dan target CMake dalam file skrip CMake. Untuk informasi selengkapnya, lihat Navigasi Kode untuk Skrip CMake.

Cuplikan layar jendela Visual Studio Temukan Semua Referensi.

Hasil di mana SUPERTUX_SOURCES_CXX ditemukan ditampilkan. Misalnya, dalam daftar(SORT SSUPERTUX_SOURCES_CXX), file(GLOB SUPERTUX_SOURCES_CXX) dan sebagainya.

Manipulasi proyek CMake

Manipulasi proyek CMake tersedia di Visual Studio 2019 versi 16.5 atau yang lebih baru. Manipulasi proyek memungkinkan Anda menambahkan, menghapus, dan mengganti nama file dan target sumber di proyek CMake Anda tanpa mengedit skrip CMake Anda secara manual. Saat Anda menambahkan atau menghapus file dari Penjelajah Solusi, Visual Studio secara otomatis mengedit proyek CMake Anda. Mungkin ada lebih dari satu tempat di mana masuk akal untuk menambahkan atau menghapus referensi ke skrip CMake. Jika demikian, Visual Studio meminta Anda di mana Anda ingin membuat perubahan dan menampilkan pratinjau perubahan yang diusulkan. Untuk instruksi langkah demi langkah, lihat Menambahkan, Menghapus, dan Mengganti Nama File dan Target di Proyek CMake.

Cuplikan layar kotak dialog Perubahan Pratinjau Visual Studio.

Tampilan pohon memperlihatkan CMakeLists.txt, di mana ada dua item: add_executable dan atur. Set diperiksa. Jendela pratinjau menunjukkan di mana perubahan akan dilakukan. Kumpulan baris (PROJECT_SRC "CmakeProject4.cpp" "CMakeProject4.h" menunjukkan "Demo.cpp" disorot sebelum kurung tutup. Tombol terapkan menerima perubahan, atau Anda dapat menekan batal.

IntelliSense untuk proyek CMake

Secara default, Visual Studio menggunakan mode IntelliSense yang cocok dengan arsitektur kompilator dan target yang ditentukan oleh konfigurasi CMake aktif.

Jika CMakePresets.json adalah file konfigurasi CMake aktif Anda, maka Anda dapat menentukan opsi IntelliSense menggunakan intelliSenseMode dan intelliSenseOptions di peta vendor Visual Studio Pengaturan. Untuk informasi selengkapnya, lihat referensi peta vendor Visual Studio Pengaturan.

Jika CMakeSettings.json adalah file konfigurasi CMake aktif Anda, maka Anda dapat menentukan opsi IntelliSense menggunakan intelliSenseMode di CMakeSettings.json. Untuk informasi selengkapnya, lihat CMakeSettings.json referensi.

Mengonfigurasi IntelliSense dengan file toolchain CMake

Di Visual Studio 2019 versi 16.9 dan yang lebih baru, Visual Studio secara otomatis mengonfigurasi IntelliSense dalam proyek CMake berdasarkan variabel CMake saat Anda menggunakan file toolchain CMake. Untuk informasi selengkapnya, lihat Mengonfigurasi IntelliSense dengan File Toolchain CMake.

Integrasi Vcpkg

Proyek CMake yang dibuka di Visual Studio terintegrasi dengan vcpkg, manajer dependensi C/C++ lintas platform. Sebelum menggunakan vcpkg dengan Visual Studio, Anda harus menjalankan vcpkg integrate install. Untuk instruksi dan informasi selengkapnya tentang vcpkg, lihat:

Jika CMakeSettings.json adalah file konfigurasi aktif Anda, Visual Studio secara otomatis meneruskan file toolchain vcpkg (vcpkg.cmake) ke CMake. Perilaku ini dinonaktifkan secara otomatis saat Anda menentukan toolchain lain dalam konfigurasi Pengaturan CMake Anda.

Jika CMakePresets.json adalah file konfigurasi aktif Anda, Anda harus mengatur jalur ke vcpkg.cmake di CMakePresets.json. Sebaiknya gunakan VCPKG_ROOT variabel lingkungan alih-alih jalur absolut untuk menjaga file tetap dapat dibagikan. Untuk informasi selengkapnya, lihat Mengaktifkan integrasi vcpkg dengan CMake Presets. CMakePresets.json tersedia di Visual Studio 2019 versi 16.10 atau yang lebih baru dan merupakan file konfigurasi CMake yang direkomendasikan.

Jalankan CMake dari baris perintah

Jika CMakePresets.json adalah file konfigurasi CMake aktif Anda, maka Anda dapat dengan mudah mereproduksi build lokal Anda di luar Visual Studio. Untuk informasi selengkapnya, lihat Menjalankan CMake dari baris perintah atau alur CI. CMakePresets.json didukung di Visual Studio 2019 versi 16.10 atau yang lebih baru dan merupakan file konfigurasi CMake yang direkomendasikan.

Jika CMakeSettings.json adalah file konfigurasi CMake aktif Anda, maka Anda harus meneruskan argumen yang dikodekan secara manual dalam file Anda CMakeSettings.json ke CMake. Jika Anda telah menginstal CMake dari Alat Penginstal Visual Studio, Anda dapat menjalankannya dari baris perintah dengan mengikuti langkah-langkah berikut:

  1. Jalankan file yang sesuai vsdevcmd.bat (x86/x64). Untuk informasi selengkapnya, lihat Membangun pada baris perintah .

  2. Beralih ke folder output Anda.

  3. Jalankan CMake untuk membuat atau mengonfigurasi aplikasi Anda.

Visual Studio 2017 memiliki dukungan yang kaya untuk CMake, termasuk proyek CMake lintas platform. Komponen Visual C++ Tools for CMake menggunakan fitur Open Folder untuk memungkinkan IDE menggunakan file proyek CMake (seperti CMakeLists.txt) secara langsung untuk tujuan IntelliSense dan penjelajahan. Generator Ninja dan Visual Studio didukung. Jika Anda menggunakan generator Visual Studio, ia menghasilkan file proyek sementara dan meneruskannya ke MSBuild. Namun, proyek tidak pernah dimuat untuk tujuan IntelliSense atau penjelajahan. Anda juga dapat mengimpor cache CMake yang ada.

Penginstalan

Alat C++ Visual untuk CMake diinstal sebagai bagian dari pengembangan Desktop dengan C++ dan Pengembangan Linux dengan beban kerja C+ +.

Cuplikan layar Alat Penginstal Visual Studio. Tab Komponen individual dipilih di mana Visual C plus plus alat untuk CMake dipilih.

Untuk informasi selengkapnya, lihat Menginstal beban kerja C++ Linux di Visual Studio.

Integrasi IDE

Saat Anda memilih Buka Folder File >> untuk membuka folder yang CMakeLists.txt berisi file, hal berikut ini terjadi:

  • Visual Studio menambahkan item menu CMake ke menu utama, dengan perintah untuk melihat dan mengedit skrip CMake.

  • Penjelajah Solusi menampilkan struktur folder dan file.

  • Visual Studio menjalankan CMake dan secara opsional menghasilkan cache CMake untuk konfigurasi default, yaitu x86 Debug. Baris perintah CMake ditampilkan di Jendela Output, bersama dengan output lain dari CMake.

  • Di latar belakang, Visual Studio mulai mengindeks file sumber untuk mengaktifkan IntelliSense, menelusuri informasi, merefaktor, dan sebagainya. Saat Anda bekerja, Visual Studio memantau perubahan di editor dan juga pada disk untuk menjaga indeksnya tetap sinkron dengan sumbernya.

Anda dapat membuka folder yang berisi sejumlah proyek CMake. Visual Studio mendeteksi dan mengonfigurasi semua file "root" CMakeLists.txt di ruang kerja Anda. Operasi CMake (mengonfigurasi, membangun, men-debug), C++ IntelliSense, dan penjelajahan tersedia untuk semua proyek CMake di ruang kerja Anda.

Cuplikan layar Penjelajah Solusi Visual Studio.

File dan folder proyek CMake terlihat. Ada subdirektori pengujian, CMakeLists.txt, dan hello.cpp. Ada folder hello-cmake-vcpkg yang berisi CMakeLists.txt, CMake Pengaturan.json, dan hello.cpp.

Anda juga dapat melihat proyek yang diatur secara logis menurut target. Pilih Tampilan target dari menu drop-down di toolbar Penjelajah Solusi:

Cuplikan layar tombol dropdown di Penjelajah Solusi Visual Studio yang menawarkan opsi tampilan target CMake. Yang dipilih.

Visual Studio menggunakan file yang dipanggil CMakeSettings.json untuk menyimpan variabel lingkungan atau opsi baris perintah untuk CMake. CMakeSettings.json juga memungkinkan Anda menentukan dan menyimpan beberapa konfigurasi build CMake. Anda dapat dengan mudah beralih di antara mereka di IDE.

Jika tidak, gunakan seperti yang CMakeLists.txt Anda lakukan di proyek CMake apa pun untuk menentukan file sumber, menemukan pustaka, mengatur opsi pengkompilasi dan pengtaut, dan menentukan informasi terkait sistem build lainnya.

Jika Anda perlu meneruskan argumen ke yang dapat dieksekusi pada waktu debug, Anda dapat menggunakan file lain yang disebut launch.vs.json. Dalam beberapa skenario, Visual Studio secara otomatis menghasilkan file-file ini. Anda dapat mengeditnya secara manual, atau bahkan membuat file sendiri.

Catatan

Untuk jenis proyek Open Folder lainnya, dua file JSON tambahan digunakan: CppProperties.json dan tasks.vs.json. Keduanya tidak relevan untuk proyek CMake.

Mengimpor cache yang sudah ada

Saat Anda mengimpor file yang sudah ada CMakeCache.txt , Visual Studio secara otomatis mengekstrak variabel yang disesuaikan dan membuat file yang telah diisi CMakeSettings.json sebelumnya berdasarkan variabel tersebut. Cache asli tidak dimodifikasi dengan cara apa pun. Ini masih dapat digunakan dari baris perintah, atau dengan alat atau IDE apa pun yang digunakan untuk menghasilkannya. File baru CMakeSettings.json ditempatkan bersama akar CMakeLists.txtproyek . Visual Studio menghasilkan cache baru berdasarkan file pengaturan. Anda dapat mengambil alih pembuatan cache otomatis dalam dialog Opsi > Alat > CMake > Umum.

Tidak semua yang ada dalam cache diimpor. Properti seperti generator dan lokasi pengkompilasi diganti dengan default yang dikenal berfungsi dengan baik dengan IDE.

Untuk mengimpor cache yang ada

  1. Dari menu utama, pilih File > Buka > CMake:

    Cuplikan layar menu utama Visual Studio. File > Buka > C Make dipilih.

    Perintah ini memunculkan wizard Impor CMake dari Cache .

  2. Navigasi ke CMakeCache.txt file yang ingin Anda impor, lalu pilih OK. Wizard Impor Proyek CMake dari Cache muncul:

    Cuplikan layar wizard Impor Proyek CMake dari Cache. Jalur direktori proyek CMake yang akan diimpor masuk ke kotak teks 'folder'.

    Setelah wizard selesai, Anda dapat melihat file baru CMakeCache.txt di Penjelajah Solusi di samping file akar CMakeLists.txt dalam proyek Anda.

Membangun proyek CMake

Untuk membangun proyek CMake, Anda memiliki pilihan berikut:

  1. Di toolbar Umum, temukan menu dropdown Konfigurasi . Ini mungkin menampilkan "Linux-Debug" atau "x64-Debug" secara default. Pilih konfigurasi pilihan dan tekan F5, atau pilih tombol Jalankan (segitiga hijau) pada toolbar. Proyek secara otomatis dibangun terlebih dahulu, sama seperti solusi Visual Studio.

  2. CMakeLists.txt Klik kanan di Penjelajah Solusi dan pilih Bangun dari menu konteks. Jika Anda memiliki beberapa target dalam struktur folder, Anda dapat memilih untuk membangun semua atau hanya satu target tertentu.

  3. Dari menu utama, pilih Build > Build Solution (F7 atau Ctrl+Shift+B). Pastikan target CMake sudah dipilih di menu dropdown Item Startup di toolbar Umum .

Cuplikan layar Penjelajah Solusi Visual Studio setelah mengklik kanan CMakeLists.txt.

Menu memiliki opsi seperti Tambahkan, Buka, Konfigurasikan tugas, Bangun, Bersihkan semua, dan sebagainya.

Anda dapat menyesuaikan konfigurasi build, variabel lingkungan, argumen baris perintah, dan pengaturan lainnya dalam CMakeSettings.json file. Ini memungkinkan Anda membuat perubahan tanpa memodifikasi CMakeLists.txt file. Untuk informasi selengkapnya, lihat Menyesuaikan pengaturan CMake.

Seperti yang Anda harapkan, hasil build ditampilkan di Jendela Output dan Daftar Kesalahan.

Cuplikan layar jendela Daftar Kesalahan Visual Studio.

Peringatan build CMake tentang konversi yang dapat mengakibatkan hilangnya data seperti mengonversi dari float ke bilangan bulat terlihat.

Di folder dengan beberapa target build, Anda dapat menentukan target CMake mana yang akan dibangun: Pilih item Build pada menu CMake atau CMakeLists.txt menu konteks untuk menentukan target. Jika Anda memasukkan Ctrl+Shift+B dalam proyek CMake, CMake akan membangun dokumen aktif saat ini.

Men-debug proyek CMake

Untuk men-debug proyek CMake, pilih konfigurasi pilihan dan tekan F5. Atau, tekan tombol Jalankan di toolbar. Jika tombol Jalankan berbuah "Pilih Item Startup", pilih panah dropdown dan pilih target yang ingin Anda jalankan. (Dalam proyek CMake, opsi "Dokumen saat ini" hanya valid untuk file .cpp.)

Cuplikan layar menu dropdown Pilih Item Startup untuk proyek CMake. Anda dapat memilih dokumen atau hello-cmake.exe saat ini

Perintah Jalankan atau F5 pertama-tama buat proyek jika perubahan telah dilakukan sejak build sebelumnya.

Anda dapat menyesuaikan sesi penelusuran kesalahan CMake dengan mengatur properti dalam launch.vs.json file. Untuk informasi selengkapnya, lihat Mengonfigurasi sesi penelusuran kesalahan CMake.

CMakeLists.txt Mengedit file

Untuk mengedit CMakeLists.txt file, klik kanan file di Penjelajah Solusi dan pilih Buka. Jika Anda membuat perubahan pada file, bilah status kuning muncul dan memberi tahu Anda bahwa IntelliSense akan diperbarui. Ini memberi Anda kesempatan untuk membatalkan operasi pembaruan. Untuk informasi tentang CMakeLists.txt, lihat dokumentasi CMake.

Cuplikan layar file C Make Lists .txt sedang diedit di Visual Studio.

File berisi: proyek (hello-cmake), add_subdirectory (pengujian), add_executable (hello hello.cpp), dan instal (TARGETS hello DESTINATION hello/bin). Pesan di bagian atas jendela mengatakan bahwa info c plus plus IntelliSense akan di-refresh setelah C Make selesai menghasilkan cache.

Segera setelah Anda menyimpan file, langkah konfigurasi secara otomatis berjalan lagi dan menampilkan informasi di jendela Output . Kesalahan dan peringatan ditampilkan di jendela Daftar Kesalahan atau Output . Klik dua kali pada kesalahan di Daftar Kesalahan untuk menavigasi ke baris yang menyinggung di CMakeLists.txt.

Cuplikan layar kesalahan C Make di daftar kesalahan Visual Studio.

Pesan kesalahan C Make pada baris 3 CMakeLists.txt disorot. Detailnya adalah bahwa C Make tidak dapat menemukan file konfigurasi paket yang disediakan oleh sqlite3. C Make mencarinya di CMAKE_MODULE_PATH tetapi tidak dapat menemukannya. Sarannya adalah menambahkan awalan penginstalan 'sqlite3' ke CMAKE_PREFIX_PATH atau mengatur sqlite3_DIR ke direktori yang berisi sqlite3Config.cmake dan/atau sqlitet3-config.cmake.

Langkah konfigurasi CMake

Ketika perubahan signifikan dilakukan pada CMakeSettings.json atau ke CMakeLists.txt file, Visual Studio secara otomatis menjalankan ulang langkah konfigurasi CMake. Jika langkah konfigurasi selesai tanpa kesalahan, informasi yang dikumpulkan tersedia di C++ IntelliSense dan layanan bahasa. Ini juga digunakan dalam operasi build dan debug.

Beberapa proyek CMake mungkin menggunakan nama konfigurasi CMake yang sama (misalnya, x86-Debug). Semuanya dikonfigurasi dan dibangun (dalam folder akar build mereka sendiri) ketika konfigurasi tersebut dipilih. Anda dapat men-debug target dari semua proyek CMake yang berpartisipasi dalam konfigurasi CMake tersebut.

Cuplikan layar menu utama Visual Studio, buka CMake > Build Only.

Menu konteks menunjukkan apa yang dapat dibangun--dalam hal ini hello-cmake-a \ hello-cmake.exe (Project hello-cmake) dan hello-cmake-b\hello-cmake.exe (Project hello-cmake). Yang terakhir disorot.

Anda dapat membatasi sesi build dan debug ke subset proyek di ruang kerja. Buat konfigurasi baru dengan nama unik dalam CMakeSettings.json file. Kemudian, terapkan konfigurasi ke proyek tersebut saja. Saat konfigurasi tersebut dipilih, IntelliSense dan perintah build dan debug hanya berlaku untuk proyek yang ditentukan.

Pemecahan masalah kesalahan cache CMake

Jika Anda memerlukan informasi selengkapnya tentang status cache CMake untuk mendiagnosis masalah, buka menu utama CMake atau CMakeLists.txt menu konteks di Penjelajah Solusi untuk menjalankan salah satu perintah ini:

  • Lihat Cache membuka CMakeCache.txt file dari folder akar build di editor. (Setiap pengeditan yang Anda buat di sini akan CMakeCache.txt dihapus jika Anda membersihkan cache. Untuk membuat perubahan yang bertahan setelah cache dibersihkan, lihat Menyesuaikan pengaturan CMake.)

  • Buka Folder Singgahan membuka jendela Explorer ke folder akar build.

  • Clean Cache menghapus folder akar build sehingga langkah konfigurasi CMake berikutnya dimulai dari cache bersih.

  • Buat Cache memaksa langkah hasilkan untuk dijalankan meskipun Visual Studio mempertimbangkan lingkungan yang terbaru.

Pembuatan cache otomatis dapat dinonaktifkan dalam dialog Opsi > Alat > CMake > Umum.

Kompilasi file tunggal

Untuk membuat satu file dalam proyek CMake, klik kanan pada file di Penjelajah Solusi. Pilih Kompilasi dari menu pop-up. Anda juga dapat membangun file yang saat ini terbuka di editor dengan menggunakan menu CMake utama:

Cuplikan layar menu konteks Kompilasi CMake > . Ini berisi satu entri: Bullet3Collision.

Jalankan CMake dari baris perintah

Jika Anda telah menginstal CMake dari Alat Penginstal Visual Studio, Anda dapat menjalankannya dari baris perintah dengan mengikuti langkah-langkah berikut:

  1. Jalankan file yang sesuai vsdevcmd.bat (x86/x64). Untuk informasi selengkapnya, lihat Membangun di Baris Perintah.

  2. Beralih ke folder output Anda.

  3. Jalankan CMake untuk membuat atau mengonfigurasi aplikasi Anda.

Di Visual Studio 2015, pengguna Visual Studio dapat menggunakan generator CMake untuk menghasilkan file proyek MSBuild, yang kemudian digunakan IDE untuk IntelliSense, penjelajahan, dan kompilasi.

Lihat juga

Tutorial: Membuat proyek lintas platform C++ di Visual Studio
Mengonfigurasi proyek CMake Linux
Menyambungkan ke komputer Linux jarak jauh Anda
Menyesuaikan pengaturan build CMake
CMakeSettings.json referensi skema
Mengonfigurasi sesi penelusuran kesalahan CMake
Menyebarkan, menjalankan, dan men-debug proyek Linux Anda
Referensi konfigurasi CMake yang telah ditentukan sebelumnya
vcpkg dalam proyek CMake
Menginstal dan menggunakan paket dengan CMake di Visual Studio