Aracılığıyla paylaş


Visual Studio’da CMake projeleri

CMake , birden çok platformda çalışan derleme işlemlerini tanımlamaya yönelik platformlar arası, açık kaynak bir araçtır. Bu makalede CMake hakkında bilgi sahibi olduğunuz varsayılır. CMake hakkında daha fazla bilgi için CMake belgelerine bakın. CMake öğreticisi, daha fazla bilgi edinmek için iyi bir başlangıç noktasıdır.

Not

CMake, son birkaç sürümde Visual Studio ile her geçen gün daha fazla tümleşik hale geldi. Tercih ettiğiniz Visual Studio sürümünün belgelerini görmek için, bu sayfadaki içindekiler tablosunun en üstünde bulunan Sürüm seçicisini kullanın.

Visual Studio'nun CMake için yerel desteği, Aynı Visual Studio örneğinden Windows, Linux için Windows Alt Sistemi (WSL) ve uzak sistemlerde CMake projelerini düzenlemenize, derlemenize ve hatalarını ayıklamanıza olanak tanır. CMake proje dosyaları (örneğin CMakeLists.txt), IntelliSense ve göz atma amacıyla doğrudan Visual Studio tarafından kullanılır. Visual Studio, CMake yapılandırması ve derlemesi için doğrudan cmake.exe çağırır.

Yükleme

Windows için C++ CMake araçları, C++ ile Masaüstü geliştirme ve C++ iş yükleriyle Linux Geliştirme kapsamında yüklenir. Platformlar arası CMake geliştirmesi için hem Windows için C++ CMake hem de C++ ile Linux Geliştirme araçları gereklidir.

Visual Studio yükleyicisinin ekran görüntüsü.

Yükleyicide, C++ ile Masaüstü geliştirme açılır menüsü seçilir ve Windows için CMake araçları seçilir.

Daha fazla bilgi için bkz . Visual Studio'da C++ Linux iş yükünü yükleme.

IDE tümleştirmesi

Dosya içeren bir klasörüCMakeLists.txtaşağıdaki işlemler gerçekleşir.

Visual Studio başlatıldığında açılan ilk iletişim kutusunun ekran görüntüsü.

İletişim kutusu şu seçenekleri sunar: bir depoyu kopyalayın, bir proje veya çözüm açın, yerel bir klasör açın veya yeni bir proje oluşturun. Ekran görüntüsünde yerel bir klasör aç ifadesi vurgulanır.

  • Visual Studio, Proje menüsüne CMake betiklerini görüntüleme ve düzenleme komutlarıyla birlikte CMake öğeleri ekler.

  • Çözüm Gezgini klasör yapısını ve dosyalarını görüntüler.

  • Visual Studio, CMake'yi çalıştırır ve varsayılan yapılandırma için CMake önbellek dosyasını (CMakeCache.txt) oluşturur. CMake komut satırı, CMake'den gelen diğer çıkışlarla birlikte Çıkış Penceresinde görüntülenir.

  • Arka planda, Visual Studio IntelliSense'i, göz atma bilgilerini, yeniden düzenlemeyi vb. etkinleştirmek için kaynak dosyaları dizine eklemeye başlar. Siz çalışırken Visual Studio, dizininin kaynaklarla eşitlenmiş durumda kalmasını sağlamak için düzenleyicideki ve diskteki değişiklikleri izler.

Not

Visual Studio 2022 sürüm 17.1 Preview 2'den başlayarak, ana düzey CMakeLists.txt bir alt klasörde ve çalışma alanının ana klasöründe değilse, CMake tümleştirmesini etkinleştirmek isteyip istemediğiniz sorulacaktır. Daha fazla bilgi için bkz. CMake kısmi etkinleştirme.

CMake önbelleği oluşturma başarılı olduktan sonra, projelerinizi hedeflere göre mantıksal olarak düzenlenmiş olarak da görüntüleyebilirsiniz. Çözüm Gezgini araç çubuğunda Görünüm Seç düğmesini seçin. Çözüm Gezgini - Görünümler'deki listeden CMake Hedefler Görünümü'nü seçin ve Enter tuşuna basarak hedefler görünümünü açın:

Çözüm Gezgini Görünümleri penceresinin ekran görüntüsü. Klasör görünümü açık. C Hedef Yap Görünümü seçeneği vurgulanır.

Klasörlerde out/build/<config> Göster düğmesini seçin.

Her proje klasöründeki CMakeLists.txt dosyayı herhangi bir CMake projesinde olduğu gibi kullanın. Kaynak dosyaları belirtebilir, kitaplıkları bulabilir, derleyici ve bağlayıcı seçeneklerini ayarlayabilir ve sistemle ilgili diğer derleme bilgilerini belirtebilirsiniz. Visual Studio tarafından sağlanan CMake dil hizmetleri hakkında daha fazla bilgi için bkz . CMakeLists.txt dosyalarını düzenleme.

Visual Studio, CMake önbellek oluşturma ve derlemeyi yönlendirmek için bir CMake yapılandırma dosyası kullanır. Daha fazla bilgi için bkz . CMake projelerini yapılandırma ve CMake projeleri oluşturma.

Yürütülebilir bir dosyaya hata ayıklama sırasında bağımsız değişkenleri geçirmek için launch.vs.json adlı başka bir dosya kullanabilirsiniz. Visual Studio'da platformlar arası CMake projelerinde hata ayıklama hakkında daha fazla bilgi için bkz . CMake projelerinde hata ayıklama.

Visual Studio ve C++ dil özelliklerinin çoğu Visual Studio'daki CMake projeleri tarafından desteklenir. Örnekler şunları içerir:

Not

Diğer klasör açma projeleri için ek bir JSON dosyası CppProperties.json kullanılır. Bu dosya CMake projeleri için uygun değil.

CMake projelerini yapılandırma

CMake yapılandırma adımı proje derleme sistemini oluşturur. Komut satırından çağırmaya cmake.exe eşdeğerdir. CMake yapılandırma adımı hakkında daha fazla bilgi için CMake belgelerine bakın.

Visual Studio, CMake oluşturma ve derlemeyi yönlendirmek için bir CMake yapılandırma dosyası kullanır. CMakePresets.json , Visual Studio 2019 sürüm 16.10 veya üzeri tarafından desteklenir ve önerilen CMake yapılandırma dosyasıdır. CMakePresets.json doğrudan CMake tarafından desteklenir ve Visual Studio'dan, VS Code'dan, sürekli tümleştirme işlem hattında ve Windows, Linux ve Mac'teki komut satırından CMake oluşturma ve derlemesini yönlendirmek için kullanılabilir. CMakePresets.json hakkında daha fazla bilgi için CMake Ön Ayarlarıyla Yapılandırma ve Derleme'ye bakın. CMakeSettings.json , Visual Studio'nun önceki bir sürümünü kullanan müşteriler tarafından kullanılabilir. Daha fazla bilgi için CMakeSettings.json hakkında, CMake derleme ayarlarını özelleştirme bölümüne bakın.

CMake yapılandırma dosyanızda veya CMakeLists.txt dosyanızda önemli değişiklikler yaptığınızda, Visual Studio otomatik olarak CMake yapılandırma adımını çalıştırır. Yapılandırma adımını el ile çağırabilirsiniz: Araç çubuğundan Proje > Önbelleğini Yapılandır'ı seçin. Yapılandırma tercihlerinizi Araçlar>>de değiştirebilirsiniz.

Visual Studio ayarlar penceresindeki C Yapılandırma seçeneklerinin ekran görüntüsü.

CMake yapılandırma ayarları çağrılıyor. CMake önbellek bildirimlerini göster seçili. 'Önbellek güncel olmadığında' seçeneğinin altında 'Yapılandırma adımını asla otomatik olarak çalıştırma' seçeneği seçilmiştir.

Yapılandırma adımı hatasız tamamlanırsa, mevcut bilgiler C++ IntelliSense ve dil hizmetlerini yönlendirir. Derleme ve hata ayıklama işlemlerinde de kullanılır.

Visual Studio'da mevcut bir CMake önbelleğini de açabilirsiniz. Daha fazla bilgi için bkz . Mevcut önbelleği açma.

Yapılandırma geri bildirimlerini ve bildirimlerini özelleştirme

Varsayılan olarak, bir hata olmadığı sürece yapılandırma iletilerinin çoğu gizleniyor. Tüm iletileri görmek için Araçlar>Seçenekler>CMake>Ayrıntılı CMake tanılama çıkışını etkinleştir'i seçin.

Ayrıca, CMake önbellek bildirimini göster seçimini kaldırarak tüm CMake önbellek bildirimlerini (altın çubuklar) devre dışı bırakabilirsiniz.

Hedefleri Özelleştirme Kaynak gruplarını görüntüleme

Varsayılan olarak, CMake Hedefleri Görünümü şu kaynak grupları yoksayar: Kaynak Dosyalar, Üst Bilgi Dosyaları, Kaynaklar, Nesne Dosyaları. Bu gruplar çoğu CMake projesine varsayılan olarak dahil edilir ve Hedefler Görünümü'nde gezinmek için gereken tıklama sayısını gereksiz yere artırır.

Araçları>Seçenekleri>CMake>CMake Hedefleri Görünümünde yoksayılan kaynak gruplarının kullanımını etkinleştirmeyi seçerek bu kaynak gruplarının kullanımını etkinleştirebilirsiniz.

CMake önbellek hatalarını giderme

Bir sorunu tanılamak için CMake önbelleğinin durumu hakkında daha fazla bilgiye ihtiyacınız varsa, aşağıdaki komutlardan birini çalıştırmak için proje ana menüsünü veya Çözüm GezginiCMakeLists.txtaçın:

  • CMakeCache.txt dosyasını görüntüle komutu, CMakeCache.txt dosyasını düzenleyicideki derleme dizininden açar. Önbelleği temizlerseniz, burada CMakeCache.txt yaptığınız tüm düzenlemeler silinir. Önbelleği temizledikten sonra değişikliklerin kalıcı olmasını sağlamak için CMake ayarlarını özelleştirin veya CMake Ön Ayarları ile yapılandırın ve derleyin.

  • Önbelleği Sil ve Yeniden Yapılandır derleme dizinini siler ve temiz bir önbellekten yeniden yapılandırır.

  • Önbelleği Yapılandır, Visual Studio ortamı güncel olarak kabul edilse bile oluşturma adımını çalıştırmaya zorlar.

CMake projeleri oluşturma

CMake derleme adımı, önceden oluşturulmuş bir proje ikili ağacı oluşturur. Komut satırından çağırmaya cmake --build eşdeğerdir. CMake derleme adımı hakkında daha fazla bilgi için CMake belgelerine bakın.

CMake projesi oluşturmak için şu seçeneklere sahipsiniz:

  1. Araç çubuğunda Başlangıç Öğesi açılan listesini bulun. Tercih edilen hedefi seçin ve F5 tuşuna basın veya araç çubuğunda çalıştır düğmesini seçin. Proje, bir Visual Studio çözümü gibi, öncelikle otomatik olarak derlenir.

  2. Çözüm Gezgini CMake Hedefleri Görünümü etkinken CMake hedefini sağ tıklatın ve bağlam menüsünden Oluştur'u seçin.

  3. Ana menüden Derle > Tümünü Derle seçin. Başlangıç Öğesi açılır listesinde araç çubuğunda bir CMake hedefinin zaten seçili olduğundan emin olun.

Beklediğiniz gibi, derleme sonuçları Çıkış Penceresi ve Hata Listesi'nde gösterilir.

Visual Studio Hata Listesi penceresinin ekran görüntüsü

C Bir float'dan tamsayıya dönüştürme gibi veri kaybına neden olabilecek dönüştürmeler hakkında derleme uyarıları görünür hale getirin.

Derleme ayarlarını düzenleme

Visual Studio, CMake derlemelerini yönlendirmek için bir CMake yapılandırma dosyası kullanır. CMake yapılandırma dosyaları, yerel derleme aracı anahtarları ve ortam değişkenleri gibi derleme seçeneklerini kapsüller. Eğer CMakePresets.json etkin yapılandırma dosyanızsa, CMake Ön Ayarları ile yapılandırma ve derleme konusuna bakınız. Etkin yapılandırma dosyanız CMakeSettings.json ise, CMake derleme ayarlarını özelleştirme bölümüne bakınız. CMakePresets.json Visual Studio 2019 sürüm 16.10 veya sonraki sürümlerde kullanılabilir ve önerilen CMake yapılandırma dosyasıdır.

CMake projelerinin hatalarını ayıklama

Tüm yürütülebilir CMake hedefleri, araç çubuğundaki Başlangıç Öğesi açılan listesinde gösterilir. Hata ayıklamayı başlatmak için birini seçin ve araç çubuğunda Debug > Hata Ayıklamayı Başlat düğmesine basın. CMake projesinde, Şu anki belge seçeneği yalnızca .cpp dosyalar için geçerlidir.

Visual Studio hata ayıklama menüsü açılır listesinin ekran görüntüsü.

Açılan listede şu seçenekler bulunur: Hata ayıklama hedeflerini, geçerli belgeyi, örnekleri (vurgulanmış), box2d_tests ve samples-noGUI'yi göster/gizle.

Debug veya F5 komutları, önceki derlemeden bu yana değişiklikler yapılmışsa önce projeyi derler. CMake yapılandırma dosyasında (CMakePresets.json veya CMakeSettings.json) yapılan değişiklikler veya CMake CMakeLists.txt önbelleğinin yeniden üretilmesine neden olur.

Dosyadaki özellikleri ayarlayarak CMake hata ayıklama oturumunu launch.vs.json özelleştirebilirsiniz. Belirli bir hedefin hata ayıklama ayarlarını özelleştirmek için başlangıç öğesi açılan listesinde hedefi seçin ve etkin hedef><için Hata Ayıklama > Hata Ayıklama ve Başlatma Ayarları'nıseçin. CMake hata ayıklama oturumları hakkında daha fazla bilgi için bkz . CMake hata ayıklama oturumlarını yapılandırma.

CMake projeleri için Yalnızca Kodum

MSVC derleyicisini kullanarak Windows için derleme yaptığınızda, CMake projeleri Yalnızca Kodum hata ayıklama desteğine sahiptir. Sadece Benim Kodum ayarını değiştirmek için Araçlar SeçeneklerHata Ayıklama Genel'e gidin. Just My Code hata ayıklaması hakkında daha fazla bilgi için bkz . Just My Code ile yalnızca kullanıcı kodunda hata ayıklama.

CMake projeleri için Düzenle ve Devam Et

MSVC derleyicisi ile Windows için derleme yaptığınızda, CMake projelerinin Düzenle ve Devam Et desteği vardır. Düzenle ve Devam Et'i etkinleştirmek için dosyanıza CMakeLists.txt aşağıdaki kodu ekleyin.

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

Düzenle ve Devam Et hakkında daha fazla bilgi için bkz . Düzenle ve Devam Et'i Yapılandırma (C#, VB, C++).

Linux üzerinde çalışan bir CMake projesine ekleme

Visual Studio, uzak bir Linux sisteminde veya WSL'de çalışan bir işlemin hatalarını ayıklamanıza ve GDB hata ayıklayıcısı ile hata ayıklamanıza olanak tanır. Başlamak için Hata Ayıkla>İşleme Ekle...'yi seçin, Bağlantı türünüSSH olarak ayarlayın ve Bağlantı Yöneticisi'ndeki bağlantı listesinden Bağlantı hedefinizi seçin. Kullanılabilir işlemler listesinden bir işlem seçin ve Ekle'ye basın. GDB, Linux makinenize yüklenmelidir. SSH bağlantıları hakkında daha fazla bilgi için bkz. Bağlantı Yöneticisi

Visual Studio'da İşleme Ekle menüsünün ekran görüntüsü.

İletişim kutusunda şu seçenekler kullanılabilir: Bağlantı türü (SSH olarak ayarlanır), bağlantı hedefi (demo@ 172 olarak ayarlanır). 20. 60. 6) ve ekleyebileceğiniz kullanılabilir işlemlerin listesi."

CMake kısmi etkinleştirme

Visual Studio 2022 sürüm 17.1 ve sonraki sürümlerinde kök klasörünüz CMakeLists.txt dosyası içermiyorsa CMake işlevselliği otomatik olarak etkinleştirilmez. Bunun yerine, bir iletişim kutusu projeniz için CMake işlevselliğini etkinleştirmek isteyip istemediğinizi sorar. Reddederseniz, CMake önbellek üretimi başlamaz ve CMake yapılandırmaları (CMakeSettings.json veya CMakePresets.json), yapılandırma açılır listesinde görünmez. Kabul ederseniz, CMake'yi etkinleştirmek istediğiniz klasörleri belirtmek için çalışma alanı düzeyinde bir yapılandırma dosyasına CMakeWorkspaceSettings.json (.vs dizininde depolanır) yönlendirilirsiniz. (Bu klasörler kök CMakeLists.txt dosyalarınızı içerir).

Kabul edilen özellikler şunlardır:

Özellik Açıklama
enableCMake Bu çalışma alanı için Visual Studio tümleştirmesini etkinleştirin.
sourceDirectory ile CMakeLists.txtdizini veya dizinleri belirten bir dize veya dize dizisi. Makrolara (örneğin ${workspaceRoot}) izin verilir. Göreli yollar çalışma alanı kökünü temel alır. Geçerli çalışma alanının dışındaki dizinler yoksayılır.

CMake işlevselliği şu anda devre dışı bırakılmış olsa bile, istediğiniz zaman Project>ulaşabilirsiniz.

Mevcut önbelleği açma

Var olan bir CMake önbellek dosyasını ()CMakeCache.txt açtığınızda, Visual Studio önbelleğinizi yönetmeyi ve ağacı sizin için derlemeyi denemez. Özel veya tercih edilen araçlarınız, CMake'nin projenizi nasıl yapılandırlayacağı üzerinde tam denetime sahiptir.

Açık bir projeye mevcut bir CMake önbelleği ekleyebilirsiniz. Yeni bir yapılandırma eklediğinizde yaptığınız gibi aynı şekilde yapılır. Daha fazla bilgi için Visual Studio'da var olan bir önbelleği açma hakkındaki blog gönderimize bakın.

Not

Varsayılan mevcut önbellek deneyimi, 3.20 sürümünde CMake'den kaldırılan öğesine dayanır cmake-server. Visual Studio 2019 sürüm 16.10 ve sonraki sürümlerde mevcut önbellek işlevselliğini kullanmaya devam etmek için şu adımlardan birini uygulayın:

  • CMake sürüm 3.19 veya üzerini el ile yükleyin. Ardından, mevcut önbellek yapılandırmanızdaki özelliğini bu CMake sürümünü kullanacak şekilde ayarlayın cmakeExecutable .
  • Mevcut önbellek yapılandırmanızda özelliğini Visual Studio'nın gerekli CMake dosya tabanlı API dosyalarını istemesine izin verecek şekilde ayarlayın cacheGenerationCommand . Bu özellik hakkında daha fazla bilgi için bkz. CMakeSettings.json başvurusu.
  • Visual Studio'da açılmadan önce önbelleğinizi oluştururken CMake dosya tabanlı API dosyalarını istemek için bir sorgu dosyası kullanın. Sorgu dosyası yönergeleri için sonraki Gelişmiş CMake önbelleği sorunlarını giderme bölümüne bakın.

Gelişmiş CMake önbelleği sorunlarını giderme

Visual Studio, düzenleyiciyi proje yapınıza özgü bilgilerle doldurmak için CMake dosya tabanlı API'yi (3.14 ve sonraki sürümlerde) kullanır. Daha fazla bilgi için çok köklü çalışma alanları ve dosya tabanlı API ile ilgili C++ ekip blog gönderisine bakın.

CMake önbelleğini oluşturmadan önce, özel veya tercih ettiğiniz araçların derleme çıktı klasörünüzde (içeren .cmake/api/v1/query/client-MicrosoftVS/query.jsonklasör) adlı CMakeCache.txt bir sorgu dosyası oluşturması gerekebilir. Sorgu dosyası şu içeriği içermelidir:

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

Özel veya tercih ettiğiniz araçlar önbelleğinizi oluşturduğunda CMake, visual studio'da düzenleyiciyi proje yapınıza özgü bilgilerle doldurmak için kullandığı dosyaların altına .cmake/api/v1/response dosya yerleştirir.

Dosyaları düzenleme CMakeLists.txt

Bir CMakeLists.txt dosyayı düzenlemek için, Çözüm Gezgini'da dosyaya sağ tıklayın ve Aç'ı seçin. Dosyada değişiklik yaparsanız sarı bir durum çubuğu görüntülenir ve IntelliSense'in güncelleştirileceğini size bildirir. Güncelleştirme işlemini iptal etme şansı verir. hakkında CMakeLists.txtbilgi için CMake belgelerine bakın.

Visual Studio'da düzenlenmekte olan C Listelerini Oluştur TXT dosyasının ekran görüntüsü.

Satır projesi (hello-cmake), add_subdirectory (tests), add_executable (hello hello.cpp) ve install (TARGETS hello DESTINATION hello/bin) komutlarını içerir. Pencerenin üst kısmındaki bir ileti, C Make önbelleği oluşturmayı tamamladıktan sonra c artı IntelliSense bilgilerinin yenilendiğini belirtir.

Dosyayı kaydettiğiniz anda yapılandırma adımı otomatik olarak yeniden çalışır ve Çıktı penceresinde bilgileri görüntüler. Hatalar ve uyarılar Hata Listesi veya Çıkış penceresinde gösterilir. Hata Listesi'nde bir hataya çift tıklayarak sorunlu satıra gitmekCMakeLists.txt.

Visual Studio hata listesindeki C Make hatasının ekran görüntüsü.

CMakeLists.txt dosyasının 3. satırındaki CMake hata mesajı belirtilmiştir. Ayrıntılar, C Make'in sqlite3 tarafından sağlanan bir paket yapılandırma dosyasını bulamadığını gösterir. C Make CMAKE_MODULE_PATH'da aradı ama bulamadı. Öneri, 'sqlite3' yükleme ön ekini CMAKE_PREFIX_PATH eklemek veya sqlite3_DIR sqlite3Config.cmake ve/veya sqlitet3-config.cmake içeren bir dizine ayarlamaktır.

CMake için dil hizmetleri

CMake için dil hizmetleri Visual Studio 2019 sürüm 16.5 veya sonraki sürümlerde kullanılabilir. Dil hizmetleri desteği, CMake betik dosyalarındaki CMake değişkenleri, işlevleri ve hedefleri için Tanıma Gitme, Tanımına Bakve Tüm Referansları Bul gibi kod gezinti özelliklerini destekler. Daha fazla bilgi için bkz CMake Betikleri için Kod Gezintisi.

Visual Studio Tüm Başvuruları Bul penceresinin ekran görüntüsü.

SUPERTUX_SOURCES_CXX bulunduğu yerin sonuçları gösterilir. Örneğin, list(SORT SSUPERTUX_SOURCES_CXX), file(GLOB SUPERTUX_SOURCES_CXX) vb.

CMake proje yönetimi

CMake proje düzenlemesi Visual Studio 2019 sürüm 16.5 veya sonraki sürümlerde kullanılabilir. Proje düzenlemesi, CMake betiklerinizi el ile düzenlemeden CMake projenizde kaynak dosyaları ve hedefleri eklemenize, kaldırmanıza ve yeniden adlandırmanıza olanak tanır. Çözüm Gezgini dosya eklediğinizde veya kaldırdığınızda, Visual Studio CMake projenizi otomatik olarak düzenler. CMake betiğine referans eklemenin veya kaldırmanın mantıklı olabileceği birden fazla yer olabilir. Öyleyse, Visual Studio size değişikliği nerede yapmak istediğinizi sorar ve önerilen değişikliklerin önizlemesini görüntüler. Adım adım yönergeler için bkz . CMake Projelerinde Dosya ve Hedefleri Ekleme, Kaldırma ve Yeniden Adlandırma.

Visual Studio Önizleme Değişiklikleri iletişim kutusunun ekran görüntüsü.

Ağaç görünümü, altında iki öğe bulunan CMakeLists.txt dosyasını gösterir: add_executable ve set. Küme kontrol edildi. Önizleme penceresinde değişikliklerin nerede yapılacağı gösterilir. "CmakeProject4.cpp" "CMakeProject4.h" PROJECT_SRC satır kümesi, kapatma parantezi öncesinde vurgulanmış "Demo.cpp" gösterir. Uygula düğmesi değişikliği kabul eder veya iptal tuşuna basabilirsiniz.

CMake projeleri için IntelliSense

Varsayılan olarak, Visual Studio etkin CMake yapılandırması tarafından belirtilen derleyici ve hedef mimariyle eşleşen IntelliSense modunu kullanır.

Visual Studio Ayarları satıcı haritasında intelliSenseMode ve intelliSenseOptions kullanarak IntelliSense seçeneklerini belirleyebilirsiniz, eğer CMakePresets.json etkin CMake yapılandırma dosyanızsa. Daha fazla bilgi için, Visual Studio Ayarları satıcı haritası referansına bakın.

Etkin CMake yapılandırma dosyanızsaCMakeSettings.json, içinde intelliSenseModekullanarak CMakeSettings.json IntelliSense seçeneklerini belirtebilirsiniz. Daha fazla bilgi için başvuruya CMakeSettings.jsonbakın.

CMake araç zinciri dosyalarıyla IntelliSense'i yapılandırma

Visual Studio 2019 sürüm 16.9 ve sonraki sürümlerinde, CMake araç zinciri dosyası kullandığınızda Visual Studio CMake projelerinde CMake değişkenlerini temel alarak IntelliSense'i otomatik olarak yapılandırmaktadır. Daha fazla bilgi için bkz . CMake Araç Zinciri Dosyaları ile IntelliSense'i yapılandırma.

Vcpkg tümleştirmesi

Visual Studio'da açılan CMake projeleri, platformlar arası bir C/C++ bağımlılık yöneticisi olan vcpkg ile tümleştirilir. Visual Studio ile vcpkg kullanmadan önce komutunu çalıştırmanız vcpkg integrate installgerekir. Vcpkg hakkında yönergeler ve daha fazla bilgi için bkz:

Etkin yapılandırma dosyanızsa CMakeSettings.json , Visual Studio otomatik olarak vcpkg araç zinciri dosyasını (vcpkg.cmake) CMake'ye geçirir. CMake Ayarları yapılandırmanızda başka bir araç zinciri belirttiğinizde bu davranış otomatik olarak devre dışı bırakılır.

Etkin yapılandırma dosyanız CMakePresets.json ise, yolunu CMakePresets.jsoniçinde vcpkg.cmake olarak ayarlamanız gerekir. Dosyayı paylaşılabilir tutmak için mutlak yol yerine ortam değişkenini kullanmanızı VCPKG_ROOT öneririz. Daha fazla bilgi için bkz . CMake Ön Ayarları ile vcpkg tümleştirmesini etkinleştirme. CMakePresets.json Visual Studio 2019 sürüm 16.10 veya sonraki sürümlerde kullanılabilir ve önerilen CMake yapılandırma dosyasıdır.

CMake'yi komut satırından çalıştırma

Etkin CMake yapılandırma dosyanızsa CMakePresets.json yerel derlemelerinizi Visual Studio dışında kolayca yeniden oluşturabilirsiniz. Daha fazla bilgi için Komut satırından veya CI işlem hattından CMake çalıştırma bölümüne bakın. CMakePresets.json , Visual Studio 2019 sürüm 16.10 veya sonraki sürümlerinde desteklenir ve önerilen CMake yapılandırma dosyasıdır.

Etkin CMake yapılandırma dosyanız CMakeSettings.json ise, CMakeSettings.json dosyanızda kodlanmış olan bağımsız değişkenleri CMake'ye manuel olarak geçirmeniz gerekir. CMake'yi Visual Studio Yükleyicisi'nden yüklediyseniz, aşağıdaki adımları izleyerek komut satırından çalıştırabilirsiniz:

  1. Uygun vsdevcmd.bat dosyayı (x86/x64) çalıştırın. Daha fazla bilgi için komut satırından Microsoft C++ araç takımını kullanma bölümüne bakın.

  2. Çıkış klasörünüze geçin.

  3. Uygulamanızı derlemek veya yapılandırmak için CMake'yi çalıştırın.

Visual Studio 2017, platformlar arası CMake projeleri dahil olmak üzere CMake için zengin desteğe sahiptir. CMake için Visual C++ Araçları bileşeni, IDE'nin IntelliSense ve göz atma amacıyla doğrudan CMake proje dosyalarını (örneğin) kullanmasını sağlamak için KlasörCMakeLists.txt. Hem Ninja hem de Visual Studio oluşturucuları desteklenir. Visual Studio oluşturucu kullanırsanız, geçici bir proje dosyası oluşturur ve bunu MSBuild'e geçirir. Ancak proje hiçbir zaman IntelliSense veya göz atma amacıyla yüklenmez. Ayrıca mevcut bir CMake önbelleğini de içeri aktarabilirsiniz.

Kurulum

CMake için Visual C++ Araçları, C++ ile Masaüstü geliştirme ve C++ iş yükleriyle Linux Geliştirme'nin bir parçası olarak yüklenir.

Visual Studio Yükleyicisi'nin ekran görüntüsü. C Make için Visual C artı araçları'nın seçildiği Tek tek bileşenler sekmesi seçilir.

Daha fazla bilgi için bkz . Visual Studio'da C++ Linux iş yükünü yükleme.

IDE tümleştirmesi

Dosya > içeren bir klasörü açmak için Dosya > Aç CMakeLists.txt Klasörü seçtiğinizde, aşağıdakiler gerçekleşir:

  • Visual Studio, CMake betiklerini görüntüleme ve düzenleme komutlarıyla birlikte ana menüye bir CMake menü öğesi ekler.

  • Çözüm Gezgini klasör yapısını ve dosyalarını görüntüler.

  • Visual Studio, CMake'yi çalıştırır ve isteğe bağlı olarak x86 Debug olan varsayılan yapılandırma için CMake önbelleğini oluşturur. CMake komut satırı, CMake'den gelen diğer çıkışlarla birlikte Çıkış Penceresinde görüntülenir.

  • Arka planda, Visual Studio IntelliSense'i, göz atma bilgilerini, yeniden düzenlemeyi vb. etkinleştirmek için kaynak dosyaları dizine eklemeye başlar. Siz çalışırken Visual Studio, dizininin kaynaklarla eşitlenmiş durumda kalmasını sağlamak için düzenleyicideki ve diskteki değişiklikleri izler.

İstediğiniz sayıda CMake projesi içeren klasörleri açabilirsiniz. Visual Studio, çalışma alanınızdaki tüm üst düzey CMakeLists.txt dosyalarını algılar ve yapılandırr. CMake işlemleri (yapılandırma, derleme, hata ayıklama), C++ IntelliSense ve gözatma, çalışma alanınızdaki tüm CMake projelerinde kullanılabilir.

Visual Studio Çözüm Gezgini ekran görüntüsü.

C Make projesinin dosyaları ve klasörleri görünür durumdadır. Testler alt dizini, CMakeLists.txt ve hello.cpp vardır. CMakeLists.txt, CMakeSettings.json ve hello.cpp içeren bir hello-cmake-vcpkg klasörü vardır.

Projelerinizi hedeflere göre mantıksal olarak düzenlenmiş olarak da görüntüleyebilirsiniz. Çözüm Gezgini araç çubuğundaki açılan listeden Hedefler görünümünü seçin:

Visual Studio Çözüm Gezgini'nde açılır menüde CMake hedefleri görünüm seçeneğinin seçili olduğu ekran görüntüsü.

Visual Studio, CMake için ortam değişkenlerini veya komut satırı seçeneklerini depolamak için adlı CMakeSettings.json bir dosya kullanır. CMakeSettings.json ayrıca birden çok CMake derleme yapılandırması tanımlamanızı ve depolamanızı sağlar. IDE'de bunlar arasında rahatça geçiş yapabilirsiniz.

Aksi takdirde, kaynak dosyaları belirtmek, kitaplıkları bulmak, derleyici ve bağlayıcı seçeneklerini ayarlamak ve sistemle ilgili diğer bilgileri belirtmek için herhangi bir CMake projesinde olduğu gibi kullanın CMakeLists.txt .

Hata ayıklama zamanında bağımsız değişkenleri yürütülebilir bir dosyaya geçirmeniz gerekiyorsa, adlı launch.vs.json adında başka bir dosya kullanabilirsiniz. Bazı senaryolarda Visual Studio bu dosyaları otomatik olarak oluşturur. Bunları el ile düzenleyebilir, hatta dosyayı kendiniz oluşturabilirsiniz.

Not

Diğer tür Açık Klasör projeleri için iki ek JSON dosyası kullanılır: CppProperties.json ve tasks.vs.json. Bunların hiçbiri CMake projeleri için geçerli değildir.

Mevcut önbelleği içeri aktarma

Mevcut bir CMakeCache.txt dosyasını içeri aktardığınızda, Visual Studio özelleştirilmiş değişkenleri otomatik olarak ayıklar ve bunları temel alan önceden doldurulmuş bir CMakeSettings.json dosyası oluşturur. Özgün önbellek hiçbir şekilde değiştirilmez. Hala komut satırından veya onu oluşturmak için kullanılan araç veya IDE ile kullanılabilir. Yeni CMakeSettings.json dosya, projenin köküne CMakeLists.txteklenir. Visual Studio, ayarlar dosyasını temel alan yeni bir önbellek oluşturur. Araçlar > Seçenekleri > CMake > Genel iletişim kutusunda otomatik önbellek oluşturmayı geçersiz kılabilirsiniz.

Önbellekteki her şey içeri aktarılmaz. Oluşturucu ve derleyicilerin konumu gibi özellikler, IDE ile iyi çalıştığı bilinen varsayılan değerlerle değiştirilir.

Var olan bir önbelleği içeri aktarmak için

  1. Ana menüden Dosya > Aç > CMake'yi seçin:

    C Yap'ın seçili olduğu Visual Studio ana menüsünün ekran görüntüsü.

    Bu komut CMake'i Önbellekten İçeri Aktarma sihirbazını getirir.

  2. İçeri aktarmak istediğiniz dosyaya CMakeCache.txt gidin ve Tamam'ı seçin. Önbellekten CMake Projesi İçeri Aktar sihirbazı görüntülenir.

    C Make Projesini Önbellekten İçeri Aktarma sihirbazının ekran görüntüsü. İçe aktarılacak C Make projesinin dizin yolu klasör metin kutusuna yazılmalıdır.

    Sihirbaz tamamlandığında, projenizdeki kök *CMakeLists.txt* dosyasının yanında Çözüm Gezgini yeni CMakeCache.txt dosyasını görebilirsiniz.

CMake projeleri oluşturma

CMake projesi oluşturmak için şu seçeneklere sahipsiniz:

  1. Genel araç çubuğunda Yapılandırmalar açılan listesini bulun. Büyük olasılıkla varsayılan olarak Linux-Debug veya x64-Debug gösteriliyordur. Tercih edilen yapılandırmayı seçin ve F5 tuşuna basın veya araç çubuğunda çalıştır (yeşil üçgen) düğmesini seçin. Proje, bir Visual Studio çözümü gibi ilk olarak otomatik olarak derlenir.

  2. Çözüm Gezgini'nde üzerine sağ tıklayın ve bağlam menüsünden Oluştur'u seçin. Klasör yapınızda birden çok hedef varsa, tümünü veya yalnızca bir hedefi oluşturmayı seçebilirsiniz.

  3. Ana menüden Çözümü Derle (F7 veya Ctrl+Shift+B) seçeneğini seçin. Genel araç çubuğundaki Başlangıç Öğesi açılır listesinde bir CMake hedefinin zaten seçili olduğundan emin olun.

CMakeLists.txt'ye sağ tıkladıktan sonra Visual Studio Çözüm Gezgini'nin ekran görüntüsü.

Menüde Ekle, Aç, Görevleri yapılandır, Derle, Tümünü temizle gibi seçenekler bulunur.

Derleme yapılandırmalarını, ortam değişkenlerini, komut satırı bağımsız değişkenlerini ve dosyadaki CMakeSettings.json diğer ayarları özelleştirebilirsiniz. Dosyayı değiştirmeden CMakeLists.txt değişiklikleri yapmanızı sağlar. Daha fazla bilgi için bkz. CMake derleme ayarlarını özelleştirme .

Beklediğiniz gibi, derleme sonuçları Çıkış Penceresi ve Hata Listesi'nde gösterilir.

Visual Studio Hata Listesi penceresinin ekran görüntüsü.

C Bir float'dan tamsayıya dönüştürme gibi veri kaybına neden olabilecek dönüştürmelerle ilgili derleme uyarıları görünür hale getirin.

Birden çok derleme hedefi olan bir klasörde, hangi CMake hedefinin derleneceğini belirtebilirsiniz: Hedefi belirtmek için CMake menüsündeki Derleme öğesini veya CMakeLists.txt bağlam menüsünü seçin. CMake projesinde Ctrl+Shift+B tuşlarına basarsanız, geçerli etkin belge oluşturulur.

CMake projelerinin hatalarını ayıklama

CMake projesinde hata ayıklamak için tercih edilen yapılandırmayı seçin ve F5 tuşuna basın. Alternatif olarak, araç çubuğundaki Çalıştır düğmesine de basabilirsiniz. Çalıştır düğmesinde Başlangıç Öğesi Seçyazıyorsa, açılır oka tıklayın ve çalıştırmak istediğiniz hedefi seçin. (CMake projesinde Geçerli belge seçeneği yalnızca .cpp dosyalar için geçerlidir.)

CMake projesi için Başlangıç Öğesi Seçimi açılır listesinin ekran görüntüsü. Geçerli belgeyi veya hello-cmake'i seçebilirsiniz.

Run veya F5 komutları, önceki derlemeden bu yana değişiklikler yapılmışsa önce projeyi oluşturur.

Dosyadaki özellikleri ayarlayarak CMake hata ayıklama oturumunu launch.vs.json özelleştirebilirsiniz. Daha fazla bilgi için bkz . CMake hata ayıklama oturumlarını yapılandırma.

Dosyaları düzenleme CMakeLists.txt

Bir CMakeLists.txt dosyayı düzenlemek için, Çözüm Gezgini'da dosyaya sağ tıklayın ve Aç'ı seçin. Dosyada değişiklik yaparsanız sarı bir durum çubuğu görüntülenir ve IntelliSense'in güncelleştirileceğini size bildirir. Güncelleştirme işlemini iptal etme şansı verir. hakkında CMakeLists.txtbilgi için CMake belgelerine bakın.

Visual Studio'da düzenlenmekte olan C Listeleri dosyasının ekran görüntüsü.

Dosya proje (hello-cmake), add_subdirectory (tests), add_executable (hello hello.cpp) ve install (TARGETS hello DESTINATION hello/bin) içerir. Pencerenin üst kısmındaki bir ileti, C Make önbelleği oluşturmayı tamamladıktan sonra c artı IntelliSense bilgilerinin yenilendiğini belirtir.

Dosyayı kaydettiğiniz anda yapılandırma adımı otomatik olarak yeniden çalışır ve Çıktı penceresinde bilgileri görüntüler. Hatalar ve uyarılar Hata Listesi veya Çıkış penceresinde gösterilir. Hata Listesi'ndeki bir hataya çift tıklayın, böylece CMakeLists.txt içerisindeki sorunlu satıra ulaşabilirsiniz.

Visual Studio hata listesindeki C Make hatasının ekran görüntüsü.

CMakeLists.txt dosyasının 3. satırındaki CMake hata iletisi vurgulanır. Ayrıntılar, C Make'in sqlite3 tarafından sağlanan bir paket yapılandırma dosyasını bulamadığını gösterir. C Make CMAKE_MODULE_PATH'da aradı ama bulamadı. Öneri, 'sqlite3' yükleme ön ekini CMAKE_PREFIX_PATH eklemek veya sqlite3_DIR sqlite3Config.cmake ve/veya sqlitet3-config.cmake içeren bir dizine ayarlamaktır.

CMake yapılandırma adımı

veya CMakeSettings.json dosyalarında CMakeLists.txt önemli değişiklikler yapıldığında Visual Studio, CMake yapılandırma adımını otomatik olarak yeniden çalıştırır. Yapılandırma adımı hatasız biterse, toplanan bilgiler C++ IntelliSense ve dil hizmetlerinde kullanılabilir. Derleme ve hata ayıklama işlemlerinde de kullanılır.

Birden çok CMake projesi aynı CMake yapılandırma adını kullanabilir (örneğin, x86-Debug). Yapılandırma seçildiğinde bunların tümü yapılandırılır ve oluşturulur (kendi derleme kök klasöründe). Bu CMake yapılandırmasına katılan tüm CMake projelerindeki hedeflerin hatalarını ayıklayabilirsiniz.

Visual Studio'nun ana menüsünün ekran görüntüsü, C Make Build Only seçeneğine açık.

Bağlam menüsünde nelerin oluşturulabileceği gösterilir. Bu durumda hello-cmake-a \ hello-cmake.exe (Project hello-cmake) and hello-cmake-b\hello-cmake.exe (Project hello-cmake). İkincisi öne çıkarılmıştır.

Derlemeleri ve hata ayıklama oturumlarını çalışma alanında projelerin bir alt kümesiyle sınırlayabilirsiniz. Dosyada CMakeSettings.json benzersiz bir adla yeni bir yapılandırma oluşturun. Ardından yapılandırmayı yalnızca bu projelere uygulayın. Bu yapılandırma seçildiğinde, IntelliSense ve derleme ve hata ayıklama komutları yalnızca belirtilen projeler için geçerlidir.

CMake önbellek hatalarını giderme

Bir sorunu tanılamak için CMake önbelleğinin durumu hakkında daha fazla bilgiye ihtiyacınız varsa, şu komutlardan birini çalıştırmak için CMake ana menüsünü veya Çözüm GezginiCMakeLists.txtmenüsünü açın:

  • Görünüm Önbelleği , dosyayı düzenleyicideki derleme kök klasöründen açar CMakeCache.txt . Önbelleği temizlerseniz, burada CMakeCache.txt yaptığınız tüm düzenlemeler silinir. Önbellek temizlendikten sonra kalıcı değişiklikler yapmak için bkz. CMake ayarlarını özelleştirme.

  • Önbellek Klasörünü Aç, derleme kök klasörüne bir Gezgin penceresi açar.

  • Temiz Önbellek , derleme kök klasörünü silip sonraki CMake yapılandırma adımının temiz bir önbellekten başlatılmasını sağlar.

  • Oluşturma Önbelleği , Visual Studio ortamı güncel olarak değerlendirse bile oluşturma adımını çalıştırmaya zorlar.

Otomatik önbellek oluşturma, Araçlar > Seçenekleri CMake > Genel>.

Tek dosya derleme

CMake projesinde tek bir dosya oluşturmak için Çözüm Gezgini'da dosyaya sağ tıklayın. Açılır menüden Derle'yi seçin. Ana CMake menüsünü kullanarak düzenleyicide şu anda açık olan dosyayı da oluşturabilirsiniz:

CMake Derleme bağlam menüsünün ekran görüntüsü. Bullet 3 Çakışma adlı bir giriş içerir.

CMake'yi komut satırından çalıştırma

CMake'yi Visual Studio Yükleyicisi'nden yüklediyseniz, aşağıdaki adımları izleyerek komut satırından çalıştırabilirsiniz:

  1. Uygun vsdevcmd.bat dosyayı (x86/x64) çalıştırın. Daha fazla bilgi için bkz Komut Satırında Derleme.

  2. Çıkış klasörünüze geçin.

  3. Uygulamanızı derlemek veya yapılandırmak için CMake'yi çalıştırın.

Visual Studio 2015'te, Visual Studio kullanıcıları CMake oluşturucu kullanarak MSBuild proje dosyalarını oluşturabilir ve IDE daha sonra IntelliSense, gözatma ve derleme için kullanır.