CMake Proje Düzeni ve CMakeLists.txt
Kaynak ağaçlarını düzenleyin ve temel CMakeLists.txt dosyaları yazın
CMake Proje Düzeni ve CMakeLists.txt, CoddyKit'te ücretsiz bir C++ Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, C++ Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. C++ Academy kursu toplamda 4 dersten oluşur.
Neden CMake?
CMake, C++ için fiilî standart derleme sistemi üreticisidir. Tek bir açıklamadan Make, Ninja, Visual Studio ve Xcode için proje dosyaları üretir.
Minimal CMakeLists.txt
Tek bir çalıştırılabilir dosya için kullanılabilecek en küçük CMakeLists.txt.
cmake_minimum_required(VERSION 3.20)
project(MyApp LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
add_executable(myapp main.cpp)Kaynak Dışı Derlemeler
Derlemeyi her zaman ayrı bir dizinde yapın; böylece kaynak ağacı temiz kalır.
# from project root
cmake -B build
cmake --build buildStandart Proje Düzeni
Temiz bir yapı:
CMakeLists.txtsrc/— kaynak dosyalarıinclude/— herkese açık başlık dosyalarıtests/— testlerthird_party/— pakete dahil edilen bağımlılıklar
Alt Dizinler Ekleme
Kendi CMakeLists.txt dosyalarına sahip alt dizinlere yinelemeli olarak girin.
# top-level
add_subdirectory(src)
add_subdirectory(tests)Değişkenler ve Özellikler
Değişkenleri set ile ayarlayın. Değerlerini ${var} ile okuyun. Yaygın değişkenler: CMAKE_BUILD_TYPE, CMAKE_CXX_FLAGS.
set(CMAKE_BUILD_TYPE Release)
set(SOURCES src/a.cpp src/b.cpp)Dosyaları Dinamik Olarak Bulma
Hızlı prototipler için file(GLOB ...) kullanın. Üretim kodunda kaynakları açıkça listeleyin; böylece dosya eklendiğinde CMake yeniden çalışır.
# Discouraged for production
file(GLOB SOURCES "src/*.cpp")
# Preferred
add_executable(myapp src/main.cpp src/util.cpp)Derleme Yapılandırmaları
Yaygın yapılandırmalar: Debug, Release, RelWithDebInfo, MinSizeRel. -DCMAKE_BUILD_TYPE=Release ile ayarlayın.
cmake -B build -DCMAKE_BUILD_TYPE=ReleaseDerleyici Uyarıları
Uyarıları hedef özellikleri olarak etkinleştirin; böylece derleyiciler arasında taşınabilirlik sağlanır.
target_compile_options(myapp PRIVATE
$<$<CXX_COMPILER_ID:GNU,Clang>:-Wall -Wextra>
$<$<CXX_COMPILER_ID:MSVC>:/W4>
)Modern CMake Tarzı
Genel komutlar yerine hedef tabanlı komutları (target_*) tercih edin. Bu komutlar özelliklerin kapsamını belirli hedeflerle düzenli biçimde sınırlar.
CMakePresets.json (CMake 3.19+)
Yeniden kullanılabilir yapılandırmaları CMakePresets.json içinde tanımlayın; bu yapılandırmalar ekip üyeleri arasında paylaşılır.
Projeyi Kurma
İkili dosyaları, kitaplıkları ve başlık dosyalarını kurulum yollarına kopyalamak için install komutlarını kullanın.
install(TARGETS myapp DESTINATION bin)
install(DIRECTORY include/ DESTINATION include)Kısa Denetim
CMake çalıştırılırken önerilen dizin düzeni nedir?
Özet
CMake, standart C++ derleme sistemi üreticisidir. Bir CMakeLists.txt yazın, kaynak dışında derleme yapın ve hedef tabanlı komutları kullanın. Paylaşılan yapılandırmalar için ön ayarları, derleyici seçenekleri için özellikleri kullanın.
Sıkça Sorulan Sorular
“CMake Proje Düzeni ve CMakeLists.txt” dersi ücretsiz mi?
Evet — “CMake Proje Düzeni ve CMakeLists.txt” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve C++ Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. C++ Academy kursu toplamda 4 dersten oluşur.
“CMake Proje Düzeni ve CMakeLists.txt” dersinde ne öğreneceğim?
Kaynak ağaçlarını düzenleyin ve temel CMakeLists.txt dosyaları yazın C++ Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
C++ Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te C++ Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.
“CMake Proje Düzeni ve CMakeLists.txt” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu C++ Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her C++ Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- CMake Proje Düzeni ve CMakeLists.txt
- Hedefler, Bağlama ve Görünürlük: PUBLIC, PRIVATE
- Bağımlılıklar İçin vcpkg ve Conan Kullanımı
- IDE Dosyaları Oluşturma ve Platformlar Arası Derlemeler