0Pricing
C++ Academy · Pelajaran

Tata Letak Proyek CMake dan CMakeLists.txt

Susun hierarki sumber dan tulis file CMakeLists dasar

Tata Letak Proyek CMake dan CMakeLists.txt adalah pelajaran C++ Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar C++ Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus C++ Academy mencakup 4 pelajaran total.

Mengapa CMake?

CMake adalah penghasil sistem pembangunan de facto untuk C++. CMake menghasilkan berkas proyek untuk Make, Ninja, Visual Studio, dan Xcode dari satu deskripsi.

CMakeLists.txt Minimal

CMakeLists.txt terkecil yang berguna untuk satu berkas yang dapat dieksekusi.

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)

Pembangunan di Luar Sumber

Selalu lakukan pembangunan di direktori terpisah—cara ini menjaga pohon sumber tetap bersih.

# from project root
cmake -B build
cmake --build build

Tata Letak Proyek Standar

Struktur yang rapi:

  • CMakeLists.txt
  • src/ — berkas sumber
  • include/ — header publik
  • tests/ — pengujian
  • third_party/ — dependensi yang disertakan

Menambahkan Subdirektori

Lakukan rekursi ke subdirektori yang memiliki CMakeLists.txt masing-masing.

# top-level
add_subdirectory(src)
add_subdirectory(tests)

Variabel dan Properti

Tetapkan variabel dengan set. Baca variabel dengan ${var}. Variabel umum: CMAKE_BUILD_TYPE, CMAKE_CXX_FLAGS.

set(CMAKE_BUILD_TYPE Release)
set(SOURCES src/a.cpp src/b.cpp)

Menemukan Berkas Secara Dinamis

Gunakan file(GLOB ...) untuk prototipe cepat. Untuk produksi, cantumkan sumber secara eksplisit agar CMake dijalankan ulang ketika berkas ditambahkan.

# Discouraged for production
file(GLOB SOURCES "src/*.cpp")

# Preferred
add_executable(myapp src/main.cpp src/util.cpp)

Konfigurasi Pembangunan

Konfigurasi umum: Debug, Release, RelWithDebInfo, MinSizeRel. Tetapkan dengan -DCMAKE_BUILD_TYPE=Release.

cmake -B build -DCMAKE_BUILD_TYPE=Release

Peringatan Kompilator

Aktifkan peringatan sebagai properti target—cara ini portabel di berbagai kompilator.

target_compile_options(myapp PRIVATE
    $<$<CXX_COMPILER_ID:GNU,Clang>:-Wall -Wextra>
    $<$<CXX_COMPILER_ID:MSVC>:/W4>
)

Gaya CMake Modern

Utamakan perintah berbasis target (target_*) daripada perintah global. Perintah tersebut membatasi properti secara rapi pada target tertentu.

CMakePresets.json (CMake 3.19+)

Tentukan konfigurasi yang dapat digunakan kembali dalam CMakePresets.json—konfigurasi ini dapat dibagikan kepada anggota tim.

Memasang Proyek

Gunakan perintah install untuk menyalin biner, pustaka, dan header ke jalur pemasangan.

install(TARGETS myapp DESTINATION bin)
install(DIRECTORY include/ DESTINATION include)

Pemeriksaan Singkat

Pola direktori apa yang disarankan saat menjalankan CMake?

Ringkasan

CMake adalah penghasil sistem pembangunan C++ standar. Tulis CMakeLists.txt, lakukan pembangunan di luar sumber, dan gunakan perintah berbasis target. Gunakan preset untuk konfigurasi bersama dan properti untuk tanda kompilator.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Tata Letak Proyek CMake dan CMakeLists.txt” gratis?

Ya — teks lengkap “Tata Letak Proyek CMake dan CMakeLists.txt” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus C++ Academy, upgrade ke CoddyKit PRO. Kursus C++ Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Tata Letak Proyek CMake dan CMakeLists.txt”?

Susun hierarki sumber dan tulis file CMakeLists dasar Kamu berlatih C++ Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai C++ Academy?

Tidak diperlukan pengalaman sebelumnya. C++ Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.

Berapa lama pelajaran “Tata Letak Proyek CMake dan CMakeLists.txt” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran C++ Academy ini?

Ya. Setiap pelajaran C++ Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Tata Letak Proyek CMake dan CMakeLists.txt
  2. Target, Penautan, dan Visibilitas PUBLIC PRIVATE
  3. Menggunakan vcpkg dan Conan untuk Dependensi
  4. Membuat File IDE dan Build Lintas Platform
← Kembali ke C++ Academy