CMake temelleri
- C++ kursu
- İleri seviye
- Ders 43/83
- 5 dk
CMake ile build yapılandırması öğrenirsin.
CMake nedir?
CMake, C++ projeleri için bir build sistemi üretecidir (generator). Doğrudan derlemez; bunun yerine Makefile ya da Ninja dosyaları üretir ve bunlar projeyi derler. Platform bağımsızdır: Linux, macOS ve Windows'ta aynı yapı dosyasını kullanırsın.
Her CMake projesinin kökünde bir CMakeLists.txt dosyası bulunur. En temel üç komut: cmake_minimum_required(VERSION 3.20) en düşük sürümü, project(MyApp) proje adını, add_executable(myapp main.cpp) ise çalıştırılabilir hedefi tanımlar. Bu dosyayı yazdıktan sonra cmake . ile yapı dosyalarını üretirsin.
project ve add_executable
project(MyApp) komutu projeye ad verir ve varsayılan dili (C/C++) ayarlar. project(MyApp LANGUAGES CXX) biçiminde dili açıkça belirtebilirsin. Bu komut aynı zamanda PROJECT_NAME değişkenini de tanımlar.
add_executable(myapp main.cpp) komutu myapp adında bir çalıştırılabilir hedef tanımlar. Kaynak dosyaları tek tek ya da liste biçiminde verebilirsin: add_executable(myapp main.cpp utils.cpp). Hedef adı genelde proje adıyla aynı tutulur. CMake bu hedefi derleyip çalıştırılabilir dosyayı üretir.
Uygulama İlk CMakeLists.txt yaz
Bir CMakeLists.txt yaz. cmake_minimum_required(VERSION 3.20) ile sürümü, project(MyApp) ile proje adını, add_executable(myapp main.cpp) ile çalıştırılabilir hedefi tanımla.
Başlangıç kodu
# CMakeLists.txt
# cmake komutlarını buraya ekleÖrnek çözüm
cmake_minimum_required(VERSION 3.20)
project(MyApp)
add_executable(myapp main.cpp)Beklenen çıktı
Yapılandırma hazır
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 CMake ne üretir?
- Doğrudan çalıştırılabilir dosya
- C++ kaynak kodu
- Build dosyaları (Makefile ya da Ninja) Doğru cevap
- Sınıf diyagramı
Açıklama: CMake, Make ya da Ninja build dosyalarını üretir; bunlar projeyi derler.
2 Sürüm komutunu tamamla
____(VERSION 3.20)
cmake_minimum_required(VERSION 3.20)
Açıklama: cmake_minimum_required en düşük CMake sürümünü belirler.
3 Komutu rolüne eşle
| Kavram | Anlamı |
|---|---|
cmake_minimum_required |
En düşük sürüm |
project(MyApp) |
Proje adını belirler |
add_executable |
Çalıştırılabilir hedef |
CMakeLists.txt |
Yapı dosyası |