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.
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.
İ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:
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.json
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:
- CMake projeleri için Düzenle ve Devam Et
- CMake projeleri için Incredibuild tümleştirmesi
- CMake projeleri için AddressSanitizer desteği
- Clang/LLVM desteği
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.json
daha 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.json
daha 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.
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, buradaCMakeCache.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:
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.
Çö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.
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.
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.
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
İ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.txt dizini 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.txt
klasö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.txt
bilgi için CMake belgelerine bakın.
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.txt
gitmek için Hata Listesi'nde bir hataya çift tıklayın.
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.
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.
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.json
kullanarak intelliSenseMode
IntelliSense seçeneklerini belirtebilirsiniz. Daha fazla bilgi için başvuruya CMakeSettings.json
bakı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 install
gerekir. 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.json
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 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:
Uygun
vsdevcmd.bat
dosyayı (x86/x64) çalıştırın. Daha fazla bilgi için bkz . Komut satırında oluşturma.Çıkış klasörünüze geçin.
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.
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.
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, 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
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 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.txt
eklenir. 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
Ana menüden Dosya > Aç > CMake'yi seçin:
Bu komut CMake'i Önbellekten İçeri Aktarma sihirbazını getirir.
İçeri aktarmak istediğiniz dosyaya
CMakeCache.txt
gidin ve Tamam'ı seçin. CMake Projesini Önbellekten İçeri Aktar sihirbazı görüntülenir:Sihirbaz tamamlandığında, yeni
CMakeCache.txt
dosyayı projenizdeki kökCMakeLists.txt
dosyanın yanındaki Çözüm Gezgini görebilirsiniz.
CMake projeleri oluşturma
CMake projesi oluşturmak için şu seçeneklere sahipsiniz:
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.
Çö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.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.
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.
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.)
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.txt
bilgi için CMake belgelerine bakın.
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.txt
gitmek için Hata Listesi'nde bir hataya çift tıklayın.
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.
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
. (BuradaCMakeCache.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'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:
Uygun
vsdevcmd.bat
dosyayı (x86/x64) çalıştırın. Daha fazla bilgi için bkz . Komut Satırında Derleme.Çıkış klasörünüze geçin.
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