Cmake入门教程:基本命令与配置解析

需积分: 0 1 下载量 75 浏览量 更新于2024-08-05 收藏 10KB MD 举报
"Cmake学习,cmake基本命令,基础知识" Cmake是一个强大的跨平台构建工具,主要用于管理和构建软件项目。它的主要优点在于其独立于操作系统和编译器的特性,使得开发者可以在不同的环境下轻松地配置和编译项目。Cmake通过读取CMakeLists.txt配置文件来控制构建过程,这个文件包含了项目的各种设置和指令。 ### 1. Cmake基础知识 Cmake的核心概念是CMakeLists.txt文件,它是项目根目录下的文本文件,包含了项目构建的规则。通过这个文件,你可以指定项目名称、编译类型、依赖库以及构建目标等。 ### 2. 常用Cmake命令 #### 2.1 `cmake_minimum_required(VERSION 3.4.1)` 这个命令用来指定Cmake的最低版本要求。如果用户的Cmake版本低于指定版本,构建过程会提示错误,建议用户升级。这有助于确保项目使用了支持所有功能的Cmake版本。 #### 2.2 `project(demo)` `project`命令用于设置项目名称,如本例中的`demo`。此命令不仅定义了项目名称,还会创建相应的变量,如`demo_BINARY_DIR`和`demo_SOURCE_DIR`,方便后续使用。 #### 2.3 添加目标 Cmake通过`add_executable`和`add_library`命令来定义可执行文件和库。例如: - `add_executable(demo demo.cpp)` 生成名为`demo`的可执行文件。 - `add_library(common STATIC util.cpp)` 生成名为`common`的静态库。 - `add_library(common SHARED util.cpp)` 生成名为`common`的动态库(共享库)。 在不同的操作系统上,生成的库文件名会有差异,如Linux下的`.a`和`.so`,Windows下的`.lib`和`.dll`。 #### 2.4 指定源文件 - 明确指定源文件:`add_library(demo demo.cpp test.cpp util.cpp)` 直接列出所有源文件。 - 搜索所有cpp文件:`aux_source_directory(. SRC_LIST)` 查找当前目录下的所有cpp文件,并将结果保存在`SRC_LIST`变量中,然后`add_library(demo ${SRC_LIST})` 使用这些源文件创建库。 - 自定义搜索规则:`file(GLOB SRC_LIST "*.cpp" "protocol/*.cpp")` 可以根据指定的模式查找源文件,如所有cpp文件和protocol子目录下的cpp文件。 ### 3. 进阶使用 Cmake还支持其他高级功能,如设置编译选项、链接外部库、添加测试、打包安装等。例如,`include_directories`用于添加包含路径,`find_package`用于查找系统上的库,`target_link_libraries`用于链接目标所需的库,`install(TARGETS ...)`则用于安装编译后的可执行文件或库到特定位置。 Cmake提供了一个强大而灵活的框架,帮助开发者处理复杂的构建问题,使其能够在多个平台上保持一致的构建流程。通过掌握Cmake的基本命令和用法,开发者可以更加高效地管理他们的项目,节省时间并减少出错的可能性。