CMake Basics and Practical Templates

CMake fundamentals and practical examples.

What Is CMake

CMake is a cross-platform build system generator. You write CMakeLists.txt once, then generate platform-specific build files (Makefile, Ninja files, Visual Studio projects, and more).

On Linux, a typical workflow is:

  1. Write CMakeLists.txt
  2. Generate build system
  3. Build
1
2
3
4
mkdir build
cd build
cmake ..
make

Template 1: Single Source File

1
2
3
4
cmake_minimum_required(VERSION 3.5)
project(Demo1)

add_executable(demo1 test01.cpp)

Template 2: Multiple Source Files

1
2
3
4
cmake_minimum_required(VERSION 3.5)
project(Demo2)

add_executable(demo2 main.cpp utils.cpp)

Template 3: Include Directories + Libraries

1
2
3
4
5
6
cmake_minimum_required(VERSION 3.5)
project(Demo3)

include_directories(include)
add_executable(demo3 src/main.cpp src/foo.cpp)
target_link_libraries(demo3 pthread)
1
2
3
4
5
project/
  CMakeLists.txt
  src/
  include/
  build/

Tips

  • Keep out-of-source builds (build/) to avoid polluting source tree.
  • Use target_* commands (target_include_directories, target_link_libraries) for modern CMake style.
  • Pin a minimum CMake version to avoid compatibility surprises.
记录并分享
Built with Hugo
Theme Stack designed by Jimmy