CMake

Introduction to CMake and using CMake to Build and Organize a large software project 使用Cmake来构建、管理大型软件项目。


#makefile的缺点

  • 项目越大手写越复杂:makefile在一些简单的工程下,完全可以人工手写,但是当工程非常大的时候,手写makefile也是非常麻烦。
  • 平台兼容性差:陆陆续续出现了各种不同平台的makefile,有GNU make、QT 的 qmake,微软的 MSnmake,BSD Make(pmake),Makepp等等。这些 Make 工具遵循着不同的规范和标准,所执行的 Makefile 格式也千差万别。

#cmake的诞生

cmake是makefile的上层工具,可以更简单的生成makefile给下面的make用,cmake还能跨平台生成makefile。cmake简化了自己手写makefile的工作量,并且生成可移植的makefile。

#手写CMakeLists.txt

#基本结构

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
project(xxx)                          #指定项目名称,大写

add_subdirectory(子文件夹名称)                  

add_library(库文件名称 STATIC 文件)                    #通常子目录(二选一)
add_executable(可执行文件名称 文件)                     #通常父目录(二选一)

include_directories(路径)                              #必须
link_directories(路径)                                 #必须

target_link_libraries(库文件名称/可执行文件名称 链接的库文件名称)       #必须
updatedupdated2025-03-032025-03-03