CMake介绍(一)--CMake基本概念和使用方法

目录

基本概念

CMakeLists.txt 文件

命令(Command)

变量(Variable)

缓存(Cache)

基本用法

1. 设置项目基本信息

2. 添加可执行文件

3. 添加库文件

4. 链接库文件

高级用法

1. 设置编译选项

2. 设置输出目录

3. 包含其他 CMakeLists 文件

4. 使用 find_package

5. 安装目标

示例项目结构

my_project/CMakeLists.txt

src/CMakeLists.txt

常用命令总结

使用 CMake

生成 Makefile 或项目文件

使用 Visual Studio

总结


 

CMake 是一个跨平台的自动化构建系统,用于管理软件构建过程,使用 CMake 可以轻松地生成 Makefile 或 Visual Studio 项目文件。CMake 采用“描述”而非“命令”的方式来编写构建文件,这使得它非常适合复杂的构建过程。下面详细介绍 CMake 的基本概念和使用方法。

基本概念

CMakeLists.txt 文件

CMake 的配置文件称为 CMakeLists.txt,它是 CMake 用来构建项目的主入口文件。在这个文件中,你将定义项目的配置信息、源文件列表、依赖关系等。

命令(Command)

CMake 使用一系列命令来描述构建过程。常见的命令包括 add_executableadd_librarytarget_link_libraries 等。

变量(Variable)

变量用于存储配置信息和其他数据。变量名称通常以大写字母开头。

缓存(Cache)

缓存用于存储一些持久化的配置选项,如路径、版本号等。缓存变量通常通过 -D 参数传递给 CMake。

基本用法

1. 设置项目基本信息

首先需要在 CMakeLists.txt 中设置项目的名称和版本号。

 

cmake

深色版本

1cmake_minimum_required(VERSION 3.10) # 指定所需的 CMake 最低版本
2project(MyProject VERSION 1.0 LANGUAGES CXX) # 设置项目名称和版本号

2. 添加可执行文件

使用 add_executable 命令来指定可执行文件的源文件列表。

 

cmake

深色版本

1add_executable(my_executable main.cpp helper.cpp)

3. 添加库文件

使用 add_library 命令来指定库文件的源文件列表。

 

cmake

深色版本

1add_library(my_library STATIC src/mylibrary.cpp)

4. 链接库文件

使用 target_link_libraries 命令来链接库文件。

 

cmake

深色版本

1add_executable(my_executable main.cpp)
2target_link_libraries(my_executable my_library)

高级用法

1. 设置编译选项

可以设置编译器标志和其他编译选项。

 

cmake

深色版本

1set(CMAKE_CXX_STANDARD 14)
2set(CMAKE_CXX_STANDARD_REQUIRED True)
3set(CMAKE_CXX_EXTENSIONS False)

2. 设置输出目录

可以设置可执行文件和库文件的输出目录。

 

cmake

深色版本

1set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
2set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)

3. 包含其他 CMakeLists 文件

可以使用 includeadd_subdirectory 命令来包含其他 CMakeLists 文件。

 

cmake

深色版本

1include(some_config.cmake)
2add_subdirectory(subdir)

4. 使用 find_package

可以使用 find_package 命令来查找外部库,并链接到你的项目中。

 

cmake

深色版本

1find_package(Boost REQUIRED COMPONENTS system filesystem)
2include_directories(${Boost_INCLUDE_DIRS})
3target_link_libraries(my_executable ${Boost_LIBRARIES})

5. 安装目标

可以使用 install 命令来指定安装目标。

 

cmake

深色版本

1install(TARGETS my_executable DESTINATION bin)

示例项目结构

假设有一个简单的项目结构如下:

 

深色版本

1my_project/
2├── CMakeLists.txt
3└── src/
4    ├── CMakeLists.txt
5    └── main.cpp

my_project/CMakeLists.txt

 

cmake

深色版本

1cmake_minimum_required(VERSION 3.10)
2project(MyProject VERSION 1.0 LANGUAGES CXX)
3
4add_subdirectory(src)

src/CMakeLists.txt

 

cmake

深色版本

1add_executable(my_executable main.cpp)

常用命令总结

  • cmake_minimum_required: 指定所需的 CMake 最低版本。
  • project: 设置项目名称、版本号等信息。
  • add_executable: 添加可执行文件。
  • add_library: 添加库文件。
  • target_link_libraries: 链接库文件。
  • set: 设置变量。
  • include: 包含其他 CMakeLists 文件。
  • add_subdirectory: 添加子目录。
  • find_package: 查找外部库。
  • install: 指定安装目标。

使用 CMake

生成 Makefile 或项目文件

 

sh

深色版本

1mkdir build
2cd build
3cmake ..
4make

使用 Visual Studio

 

sh

深色版本

1mkdir build
2cd build
3cmake .. -G "Visual Studio 16" # 选择对应的 Visual Studio 版本

总结

CMake 是一个功能强大的构建系统,通过编写 CMakeLists.txt 文件可以轻松地管理复杂的构建过程。掌握 CMake 的基本概念和命令,可以帮助你高效地组织和构建 C++ 项目。通过实践上述示例,你可以更好地理解 CMake 的用法,并将其应用到实际项目中。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小蘑菇二号

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值