CMakeLists.txt
- C++ kursu
- İleri seviye
- Ders 44/83
- 5 dk
CMakeLists.txt yazmayı öğrenirsin.
CMakeLists.txt yapısı
Her kaynak dizininin kökünde bir CMakeLists.txt bulunur. Bu dosya CMake komutlarını içerir. En sık kullanılan komutlar: add_executable (çalıştırılabilir hedef), add_library (kütüphane hedefi), target_link_libraries (hedefe kütüphane bağlama) ve target_include_directories (başlık arama yolu).
Örnek: add_library(mylib STATIC utils.cpp) statik bir kütüphane tanımlar. target_link_libraries(myapp PRIVATE mylib) ile myapp hedefine mylib'i bağlarsın. PRIVATE bağımlılığın yalnızca bu hedefe ait olduğunu belirtir. Bu komutlar hedefler arası ilişkileri kurar.
target_link_libraries
target_link_libraries(hedef KAPSAM kütüphane) komutu bir hedefe kütüphane bağlar. Kapsam (scope) üç tür olur: PRIVATE (yalnızca bu hedef), PUBLIC (hedef ve kullananlar), INTERFACE (yalnızca kullananlar).
Örnek: target_link_libraries(myapp PRIVATE mylib). Burada myapp, mylib'i kullanır ama myapp'i kullanan başka bir hedef mylib'i görmez. Eğer kütüphane başlıkları da dışarı açıksa PUBLIC kullanılır. Bu ayrım, bağımlılıkların doğru yayılmasını sağlar ve gereksiz bağlanmayı önler.
Uygulama Kütüphane ve hedef bağla
Bir CMakeLists.txt yaz. add_library(mylib STATIC utils.cpp) ile statik kütüphane tanımla. add_executable(myapp main.cpp) ile çalıştırılabilir hedef tanımla. target_link_libraries(myapp PRIVATE mylib) ile mylib'i myapp'e bağla.
Başlangıç kodu
# CMakeLists.txt
# add_library, add_executable ve target_link_libraries ekleÖrnek çözüm
add_library(mylib STATIC utils.cpp)
add_executable(myapp main.cpp)
target_link_libraries(myapp PRIVATE mylib)Beklenen çıktı
Hedef hazır
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Çalıştırılabilir komutunu tamamla
____(myapp main.cpp)
add_executable(myapp main.cpp)
Açıklama: add_executable bir çalıştırılabilir hedef tanımlar.
2 add_executable ne yapar?
- Derleyici seçer
- Bir kütüphane tanımlar
- Başlık yolu ekler
- Bir çalıştırılabilir hedef tanımlar Doğru cevap
Açıklama: add_executable, kaynak dosyalardan bir çalıştırılabilir hedef tanımlar.
3 Komutu rolüne eşle
| Kavram | Anlamı |
|---|---|
add_library |
Kütüphane hedefi |
add_executable |
Çalıştırılabilir hedef |
target_link_libraries |
Kütüphane bağlar |
target_include_directories |
Başlık yolu ekler |