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.
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.
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:
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:
- Edit dan Lanjutkan untuk proyek CMake
- Integrasi incredibuild untuk proyek CMake
- Dukungan AddressSanitizer untuk proyek CMake
- Dukungan Clang/LLVM
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.
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 akanCMakeCache.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:
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.
Klik kanan target CMake dengan Tampilan Target CMake aktif di Penjelajah Solusi dan pilih Bangun dari menu konteks.
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.
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.
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. Untuk informasi selengkapnya tentang penelusuran kesalahan Just My Code, lihat Debug hanya kode pengguna dengan Just My Code.
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. Untuk informasi selengkapnya tentang Edit dan Lanjutkan, lihat Mengonfigurasi Edit dan Lanjutkan (C#, VB, C++).
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 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
Opsi berikut tersedia pada dialog: Jenis koneksi (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, meskipun 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 CMakeSettings.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.
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
.
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.
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.
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 Pengaturan Visual Studio. Untuk informasi selengkapnya, lihat referensi peta vendor Pengaturan Visual Studio.
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:
Jalankan file yang sesuai
vsdevcmd.bat
(x86/x64). Untuk informasi selengkapnya, lihat Membangun pada baris perintah .Beralih ke folder output Anda.
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+ +.
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.
File dan folder proyek CMake terlihat. Ada subdirektori pengujian, CMakeLists.txt, dan hello.cpp. Ada folder hello-cmake-vcpkg yang berisi CMakeLists.txt, CMakeSettings.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:
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.txt
proyek . 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
Dari menu utama, pilih File > Buka > CMake:
Perintah ini memunculkan wizard Impor CMake dari Cache .
Navigasi ke
CMakeCache.txt
file yang ingin Anda impor, lalu pilih OK. Wizard Impor Proyek CMake dari Cache muncul:Setelah wizard selesai, Anda dapat melihat file baru
CMakeCache.txt
di Penjelajah Solusi di samping file akarCMakeLists.txt
dalam proyek Anda.
Membangun proyek CMake
Untuk membangun proyek CMake, Anda memiliki pilihan berikut:
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.
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.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 .
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.
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.)
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.
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
.
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.
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 akanCMakeCache.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:
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:
Jalankan file yang sesuai
vsdevcmd.bat
(x86/x64). Untuk informasi selengkapnya, lihat Membangun di Baris Perintah.Beralih ke folder output Anda.
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