0%

CMake入门

现在的构建工具有很多,CMake是其中的佼佼者,虽然很多人说CMake编译速度太慢,但架不住兼容性好。

我了解的构建工具有bazel、ninja等,但暂时都没用过,先掌握CMake吧。

从一个简单的项目开始

一个最简单的例子

1
2
3
cmake_minimum_required(VERSION 3.0)
project(myApp)
add_executable(myTarget sample.cpp)

只有3行,但也构建了CMakeLists.txt的骨架。

  • 指定cmake支持的最小版本
  • 指定项目名称
  • 指定目标名称及其依赖

注意事项

  1. 关于targetname和projectname
    targetname和projectname不要相同,projectname直接在CMakeLists.txt中指定,

那么如果我们要依赖库呢

我们先添加一个预先生成好的库,CMakeLists.txt更新为

1
2
3
4
cmake_minimum_required(VERSION 3.0)
project(myApp)
add_executable(myTarget sample.cpp)
target_link_libraries(myTarget PUBLIC ui PRIVATE algorithm INTERNAL framework)