CMake入门教程:从简单程序到复杂构建

需积分: 0 0 下载量 17 浏览量 更新于2024-08-05 收藏 375KB PDF 举报
"CMake是一个跨平台的自动化构建系统,用于管理软件构建过程。本文是CMake的学习笔记,通过一系列逐步复杂的示例介绍如何使用CMake构建C++项目。" 在C++开发中,CMake是一个广泛使用的工具,尤其在大型项目如KDE4、pyside(Qt4的Python绑定)和OpenCV等中,都采用了CMake作为构建系统。这是因为CMake具有跨平台性,可以生成各种编译器的构建文件,如Unix下的Makefile或Windows上的Visual Studio项目文件。 本文以一个简单的C程序为例,逐步展示CMake的用法: 例子一: 首先,有一个包含一个源文件`main.c`的经典C程序,使用CMake构建的基本步骤如下: 1. 创建一个`CMakeLists.txt`文件,内容如下: ```cmake project(HELLO) set(SRC_LIST main.c) add_executable(hello ${SRC_LIST}) ``` 2. 在源代码目录外创建一个`build`目录,并在其中运行`cmake`命令,指定上一级目录为源代码目录,并选择生成的构建系统类型,例如NMake或MinGW Makefiles: ```bash cmake .. -G "NMakeMakefiles" nmake # 或者 cmake .. -G "MinGW Makefiles" make ``` 这将生成一个名为`hello.exe`的可执行文件。 例子二至六逐步增加了项目的复杂性,包括: - 分解源代码文件,增加头文件和多个源文件。 - 创建静态库,并将其链接到目标执行文件。 - 改变源文件和目标的存放目录结构。 - 控制生成的程序和库的输出目录。 - 将目标更改为使用动态库而非静态库。 通过这些例子,读者可以了解到CMake如何管理项目依赖、构建不同类型的库(静态库和动态库)、处理源文件组织以及自定义构建过程。CMake的这种灵活性和通用性使得它成为大型多模块项目构建的理想选择。 总结来说,CMake是一个强大的工具,它允许开发者编写一次构建脚本,然后在多种平台上进行构建,无需关心具体的构建系统。通过掌握CMake,开发者可以更高效地管理项目,同时简化跨平台的构建工作。