CodeBlanks Logo Icon CodeBlanks

CMakeLists.txt

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

main.cpp
# CMakeLists.txt
# add_library, add_executable ve target_link_libraries ekle

Örnek çözüm

main.cpp
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

Soru
____(myapp main.cpp)
Cevap
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

İleri seviye bölümündeki tüm dersler