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 Sürüm seçici denetimini kullanın. Bu sayfadaki içindekiler tablosunun en üstünde bulunur.

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. cmake.exe doğrudan CMake için Visual Studio yapılandırması ve derlemesi tarafından çağrılı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 artı artı ile Masaüstü geliştirme açılan menüsü seçilir ve C artı Windows için C Make 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 CMakeLists.txt bir klasörü açtığınızda aş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, CMake betiklerini görüntüleme ve düzenleme komutlarıyla birlikte Proje menüsüne 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 Önizleme 2'den başlayarak, üst düzeyiniz CMakeLists.txt çalışma alanının kökünde değil de bir alt klasörde varsa, CMake tümleştirmesini etkinleştirmek isteyip istemediğiniz sorulur. 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 CMake tarafından oluşturulan tüm çıkışı out/build/<config> görmek için Çözüm Gezgini üst kısmındaki Tüm Dosyaları 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.

Bağımsız değişkenleri hata ayıklama zamanında yürütülebilir bir dosyaya geçirmek için adlı launch.vs.jsonbaş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. hakkında CMakePresets.jsondaha fazla bilgi için bkz . CMake Ön Ayarları ile yapılandırma ve derleme. CMakeSettings.json , Visual Studio'nun önceki bir sürümünü kullanan müşteriler tarafından kullanılabilir. hakkında CMakeSettings.jsondaha fazla bilgi için bkz . CMake derleme ayarlarını özelleştirme.

CMake yapılandırma dosyanızda veya dosyanızda CMakeLists.txt ö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>Seçenekleri>CMake>Genel'de de değiştirebilirsiniz.

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

CMake yapılandırma ayarları çağrılır. C Göster Önbellek bildirimleri yap seçili. 'Önbellek güncel olmadığında:' altında 'Yapılandırma adımını otomatik olarak çalıştırma' seçeneği seçilidir.

Yapılandırma adımı hatasız tamamlanırsa, kullanılabilir bilgiler C++ IntelliSense ve dil hizmetlerini kullanır. 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.

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 CMakeLists.txt Çözüm Gezgini bağlam menüsünü açın:

  • Görünüm CMakeCache.txt dosyayı düzenleyicideki derleme dizininden açar CMakeCache.txt . Önbelleği temizlerseniz, burada CMakeCache.txt yaptığınız tüm düzenlemeler silinir. Önbelleği temizledikten sonra kalıcı değişiklikler yapmak için bkz . CMake ayarlarını özelleştirme veya CMake Ön Ayarları ile yapılandırma ve derleme.

  • Ö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 düşünse 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 ilk olarak otomatik olarak derler.

  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 Tümünü Derle'yi > seçin. Araç çubuğundaki Başlangıç Öğesi açılan listesinde 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ü Bir float'dan tamsayıya dönüştürme gibi veri kaybına neden olabilecek dönüştürmelerle ilgili CMake derleme uyarıları görünür. :::image-end:::

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. Etkin yapılandırma dosyanızsa CMakePresets.json bkz . CMake Ön Ayarları ile yapılandırma ve derleme. Etkin yapılandırma dosyanızsa CMakeSettings.json bkz . CMake derleme ayarlarını özelleş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 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 hata ayıklamayı > başlat hata ayıklama düğmesine basın. CMake projesinde "Geçerli belge" seçeneği yalnızca .cpp dosyalar için geçerlidir.

Visual Studio hata ayıklama açılan 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.

Hata Ayıklama veya F5 komutları, önceki derlemeden bu yana değişiklikler yapılmışsa önce projeyi oluşturur. 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 > ve Başlatma Ayarları'na basın. 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. Yalnızca Kodum ayarını değiştirmek için Araçlar>Seçenekler>Hata 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. 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++).

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

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 İşleme Ekle... Hata Ayıkla'yı>seçin, Bağlantı türünü SSH olarak ayarlayın ve Bağlantı Yöneticisi 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üzde dosya CMakeLists.txt yoksa CMake işlevselliği otomatik olarak etkinleştirilmez. Bunun yerine, projeniz için CMake işlevselliğini etkinleştirmek isteyip istemediğinizi soran bir iletişim kutusu görüntülenir. Reddederseniz, CMake önbellek oluşturma başlatılmaz ve yapılandırma açılan listesinde CMake yapılandırmaları (kimden CMakeSettings.json veya CMakePresets.json) 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 (dizinde .vs 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>CMake Çalışma Alanı Ayarları menü komutundan ulaşabilirsiniz.CMakeWorkspaceSettings.json

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 yapılandırma eklediğiniz gibi 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 CMakeCache.txtklasör) adlı .cmake/api/v1/query/client-MicrosoftVS/query.json 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üzenlenen C Listeleri .txt dosyasının ekran görüntüsü.

Satır projesini (hello-cmake), add_subdirectory (testler), add_executable (merhaba hello.cpp) ve yüklemeyi (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. içindeki sorunlu satıra CMakeLists.txtgitmek için Hata Listesi'nde bir hataya çift tıklayın.

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

CMakeLists.txt 3. satırdaki C Yap 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 için dil hizmetleri

CMake için dil hizmetleri Visual Studio 2019 sürüm 16.5 veya sonraki sürümlerde kullanılabilir. CMake betik dosyalarındaki CMake değişkenleri, işlevleri ve hedefleri için Tanıma Git, Tanıma Göz At ve Tüm Başvuruları 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 işleme

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 başvuru eklemenin veya kaldırmanın mantıklı olduğu 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 olan CMakeLists.txt gösterir: add_executable ve ayarla. Küme işaretli. Önizleme penceresinde değişikliklerin nerede yapılacağı gösterilir. Çizgi kümesi (PROJECT_SRC "CmakeProject4.cpp" "CMakeProject4.h" kapanış 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.

Etkin CMake yapılandırma dosyanızsaCMakePresets.json, ve kullanarak Ve'yi intelliSenseOptions kullanarak intelliSenseMode Visual Studio Ayarları satıcı haritasında IntelliSense seçeneklerini belirtebilirsiniz. Daha fazla bilgi için bkz . Visual Studio Ayarları satıcı eşleme başvurusu.

Etkin CMake yapılandırma dosyanızsaCMakeSettings.json, içinde CMakeSettings.jsonkullanarak intelliSenseMode 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 ise CMakePresets.json , yolunu vcpkg.cmake içinde CMakePresets.jsonolarak 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 bkz . Komut satırından veya CI işlem hattından CMake çalıştırma. 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ızsa CMakeSettings.json , dosyanızda kodlanmış bağımsız değişkenleri CMake'ye el ile geçirmeniz CMakeSettings.json gerekir. CMake'yi Visual Studio Yükleyicisi 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 oluşturma.

  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ğinCMakeLists.txt) kullanmasını sağlamak için Klasör Aç özelliğini kullanır. 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.

Yükleme

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 ekran görüntüsü. CMake 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 CMakeLists.txt bir klasörü açmak için Dosya > Klasör Aç'ı > 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 "kök" CMakeLists.txt dosyaları 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ü.

CMake projesinin dosyaları ve klasörleri görünü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 CMake hedefleri görünüm seçeneğini sunan açılan düğmenin ekran görüntüsü. Seçili olan.

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.jsonbaş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 CMakeCache.txt bir dosyayı içeri aktardığınızda, Visual Studio özelleştirilmiş değişkenleri otomatik olarak ayıklar ve bunları temel alan önceden doldurulmuş CMakeSettings.json bir dosya 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:

    Visual Studio ana menüsünün ekran görüntüsü. Dosya > Aç > C Yap seçili.

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

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

    CMake Projesini Önbellekten İçeri Aktar sihirbazının ekran görüntüsü. İçeri aktaracak CMake projesinin dizin yolu 'klasör' metin kutusuna gider.

    Sihirbaz tamamlandığında, yeni CMakeCache.txt dosyayı projenizdeki kök CMakeLists.txt dosyanın yanındaki Çözüm Gezgini 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 derler.

  2. Çözüm Gezgini'da sağ tıklayın CMakeLists.txt 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 Derleme Çözümü (>F7 veya Ctrl+Shift+B) öğesini seçin. Genel araç çubuğundaki Başlangıç Öğesi açılan listesinde bir CMake hedefinin zaten seçili olduğundan emin olun.

CMakeLists.txt sağ tıkladıktan sonra Visual Studio Çözüm Gezgini 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şiklik yapmanızı sağlar. Daha fazla bilgi için bkz . CMake 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ü.

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

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 projesine Ctrl+Shift+B girerseniz 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çılan oku seçin 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ç açılan listesinin ekran görüntüsü. Geçerli belgeyi veya hello-cmake.exe 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üzenlenen C Listeleri .txt dosyasının ekran görüntüsü.

Dosya şunları içerir: project (hello-cmake), add_subdirectory (testler), add_executable (merhaba hello.cpp) ve yükleme (TARGETS hello DESTINATION hello/bin). 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. içindeki sorunlu satıra CMakeLists.txtgitmek için Hata Listesi'nde bir hataya çift tıklayın.

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

CMakeLists.txt 3. satırdaki C Yap 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 CMakeLists.txt dosyalarında CMakeSettings.json ö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ı (örneğin, x86-Debug) kullanabilir. 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 yalnızca CMake > Derlemesi'ne açılan ana menüsünün ekran görüntüsü.

Bağlam menüsünde nelerin oluşturulabileceği gösterilir; bu örnekte hello-cmake-a \ hello-cmake.exe (Project hello-cmake) ve hello-cmake-b\hello-cmake.exe (Project hello-cmake). İkincisi vurgulanı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 CMakeLists.txt Çözüm Gezgini bağlam menüsünü açın:

  • Görünüm Önbelleği , dosyayı düzenleyicideki derleme kök klasöründen açar CMakeCache.txt . (Burada CMakeCache.txt yaptığınız tüm düzenlemeler, önbelleği temizlerseniz 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 iletişim kutusunda devre dışı bırakılabilir>.

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ü. Bir girdi içerir: Bullet3Collision.

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

CMake'yi Visual Studio Yükleyicisi 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.

Ayrıca bkz.

Öğretici: Visual Studio'da C++ platformlar arası projeler oluşturma
Linux CMake projesi yapılandırma
Uzak Linux bilgisayarınıza bağlanma
CMake derleme ayarlarını özelleştirme
CMakeSettings.json şema başvurusu
CMake hata ayıklama oturumlarını yapılandırma
Linux projenizi dağıtma, çalıştırma ve projenizin hatalarını ayıklama
CMake önceden tanımlanmış yapılandırma başvurusu
CMake projelerinde vcpkg
Visual Studio'da CMake ile paketleri yükleme ve kullanma